Params

<%= password_field_tag :pin %> <%= submit_tag "Complete sale" %>
daje w url wartości params widocznym wpisanym pinem

localhost:8000/static/index?utf8=✓&pin=1234&commit=Complete+sale

czy tą wartość params w url mozna ukryć?

tak – wysyłając formularz postem, nie getem.
Swoją drogą,kod wygląda bardzo źle – czy nie masz modelu, który ma pole z pinem? Czemu korzystasz z password_field_tag zamiast z password_field?

Nie, nie mam modelu ponieważ apka nie trzyma informacji o userach a uwierzytelniac ma ich z ldap.
Potrzebuje tu jedynie pobrać string z hasłem i zapisać go do zmiennej dla NetLDAP

post nie get?

tak działa

<h1>Static#index</h1> <%= form_tag("/static/index", :method => "get") do %> <%= text_field_tag :user %> <%= password_field_tag :pass %> <%= submit_tag "Zaloguj" %> <% @user=params[:user].to_s %> <% @pass=params[:pass].to_s %> <% ldap %> <% end %>
tak nie, wyrzuca brak strony, post prubuje dodac nowy wpis do nieistniejącej bazy?

<h1>Static#index</h1> <%= form_tag("/static/index", :method => "post") do %> <%= text_field_tag :user %> <%= password_field_tag :pass %> <%= submit_tag "Zaloguj" %> <% @user=params[:user].to_s %> <% @pass=params[:pass].to_s %> <% ldap %> <% end %>

Cześć,

bez konkretnego błędu ciężko stwierdzić, ale prawdopodobnie nie masz routingu, który pozwalałby na wysyłanie rządań metodą POST do Static#index.
Zainteresuj się opcją “:via” w routes.rb.

Maciek

Nic nie szkodzi – to popularny błąd początkujących, którzy myślą, że model == coś, co trzymam w bazie danych. Poczytaj o ActiveModel (lub obejrzyj railscasta), i zobacz, że da się i z Twojego przypadku zrobić model :wink:

tak jak przedmówca wspomniał – nie masz zdefiniowanej ścieżki z postem do akcji index (zresztą, nie powinnaś robić tego do indexu…)

Czy z

<%= form_tag("/static/index", :method => "get") do %> <%= text_field_tag :user %> <%= submit_tag "Zaloguj" %> <% end %>
można przekazać value inaczej do zmiennej globalnej niz przez params

  <% @user=params[:user]. %>

a) @user to zmienna instancji, $user to byłaby zmienna globalna.
b) A co właściwie konkretnie chcesz zrobić?

Zrobiłam model według tego casta i teraz od dłuzszego czasu główkuje gdzie i czy program zapisuje dane wysyłane z formularza

A gdzie chcesz zapisać dane z formularza? Wcześniej pisałaś, że nie chcesz zapisywać danych do bazy. Dasz jakiś konkret co chcesz zrobić? Łatwiej będzie znaleźć odpowiednie rozwiązanie.

Mój działający kod

<h1>Static#index</h1> <%= form_tag("/static/index", :method => "get") do %> <%= text_field_tag :user %> <%= password_field_tag :pass %> <%= submit_tag "Zaloguj" %> <% ldap %> <% end %>

module StaticHelper def ldap if @logged == false @user = params[:user].to_s @pass = params[:pass].to_s p = Net::LDAP.new p.host = "10.9.95.1" p.auth @user, @pass if (p.bind && @user!='') @logged= true end end end end
Nie chce przekazywać wartości wprowadzanych przez formularz przez params

Nie jestem jakimś super specjalistą, ale chyba bez params się nie da odebrać danych z formularza. Z wcześniejszych twoich wypowiedzi wnioskuję, że chodzi ci o przekazanie danej z formularza, ale nie umieszczając jej w adresie. Reasumując chodzi ci o przekazanie danych poprzez metodę POST.

Dzięki metodzie POST dane z formularza nie zostaną wyświetlone w adresie URL.

Dlaczego?

A można inaczej? Pytam z ciekawości.

Nie :wink: Dlatego pytam czego alicja chce uniknąć.

tego co napisałam na początku postu, widoczności hasła/pinu w url

To nie ma nic wspólnego z params. Co więcej, dostałaś już odpowiedź (2x) co zrobić, aby hasło nie pojawiało się w pasku adresu…

wiem, dziekuje Ci za info odnosnie :via, zadziałało teraz ciekawi mnie jak odczytywać/przekazywać dane przy uzyciu modelu tableless jeżeli dane nie zrzuca do bazy “meła kulpa” , że pytam, nie pisze komercyjnego projektu staram sie uczyć i zrozumieć wszystkie rozwiazania jakie podajecie