2013-11-04 25 views
8
<%= link_to "Connect", {controller:"home", action:"connectTo"}, id: "btny" %> 

To jest mój pomocnik link_to w widoku.Jak przekazać parametr do działania kontrolera z widoku w szynach za pomocą pomocnika link_to

Chcę dołączyć parametr do tego znacznika link_to, aby uzyskać go w akcji connectTo. Nie mogę znaleźć poprawnej składni ani sposobu, aby to zrobić, i nie mogę zrozumieć niektórych odpowiedzi, które znalazłem na stackoverflow. Jak mogę to osiągnąć?

def connectTo 
    #here i want to get the parameter i pass from link_to from view... 
end 
+2

mieć próbowałeś '<% = link_to" Połącz ", {controller:" home ", akcja:" connectTo ", my_param: 'foo'}, id:" btny "%>', a następnie 'params [: my_param]'? –

+0

Nie działa również. Próbowałem Twojego kodu i zapisałem parametry [: my_param] w @myVar i wyświetliłem je w widoku connectTo, ale nie otrzymałem danych wyjściowych. –

+0

jaki adres masz po kliknięciu linku? –

Odpowiedz

22
  1. Nie stosować w przypadku wielbłąda nazw zmiennych i nazwy metody w Rails. To nie jest konwencja i ugryzie cię później.

  2. Użyj nazwanej ścieżki, gdy możesz, zamiast ręcznie przypisz kontroler i akcję.

za pytanie, załóżmy, że Twój nazwie ścieżka jest home_connect_to_path, następnie

link_to "Connect", home_connect_to_path(foo_param: 'bar_value') 

Łącze będzie wyglądać

http://localhost:3000/home/connect_to?foo_parms=bar_value 

Następnie dostać w kontrolerze

def connect_to 
    foo = params[:foo_param] # 'bar_value' 
+0

Jak utworzyć nazwaną ścieżkę dla kontrolera i widoku? –

+2

Po zdefiniowaniu takiej ścieżki w 'routes.rb', możesz uruchomić' rake routes' w linii poleceń, aby zobaczyć nazwy wszystkich ścieżek. –

+0

Czy możesz powiedzieć, jak zdefiniować ścieżkę w routes.rb? –