2013-11-04 12 views
8

Dies ist mein link_to Helfer in Sicht.So übergeben Sie einen Parameter an die Controller-Aktion aus Sicht in Schienen durch link_to Helper

Ich möchte einen Parameter in diesem link_to Tag anhängen, so dass ich es in der Aktion connectTo bekommen kann. Ich bin nicht in der Lage, die richtige Syntax oder den richtigen Weg zu finden und einige Antworten, die ich auf Stackoverflow gefunden habe, nicht zu verstehen. Wie kann ich das erreichen?

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

haben Sie haben versucht, '<% = link_to" Connect ", {controller:" home ", aktion:" connectTo ", my_param: 'foo'}, id:" btny "%>' und dann 'params [: my_param]'? –

+0

Es funktioniert auch nicht. Ich habe Ihren Code ausprobiert und params [: my_param] in @myVar gespeichert und bei connectTo angezeigt und keine Ausgabe erhalten. –

+0

Welche URL hast du, wenn du auf den Link klickst? –

Antwort

22
  1. Sie Kamel Fall nicht in Rails in Variablennamen und Methodennamen verwenden. Das ist keine Konvention und wird dich später beißen.

  2. Verwenden Sie den benannten Pfad, wenn Sie können, anstatt Controller und Aktion manuell zuzuweisen.

Für Ihre Frage: Angenommen, Ihre benannten Pfad ist home_connect_to_path, dann

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

Der Link wie

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

aussehen wird es dann in der Steuerung erhalten

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

Wie mache ich einen benannten Pfad für meinen Controller und anzeigen? –

+2

Sobald Sie einen solchen Pfad in 'routes.rb' definiert haben, können Sie' rake routes' in der Befehlszeile ausführen, um die Namen aller Pfade anzuzeigen. –

+0

Können Sie bitte sagen, wie Sie einen Pfad in routes.rb definieren? –