Ecco come è possibile passare un parametro tramite il metodo link_to per, ad esempio, creare un nuovo oggetto con il parametro passato. Questa strategia permetterebbe di passare variabili tra le azioni nel vostro controller e creare oggetti con attributi predefiniti:
dire nel tuo mostrano vista, si dispone di una variabile chiamata @pippo che si desidera passare alla nuova Azione del controller. In questo caso, nella vostra spettacolo vista, si può avere
<%= link_to "Link Text", new_widget_path(:foo => @foo) %>
che memorizzare @pippo in params [: foo], che consente di utilizzare params [: foo] nel controller. L'azione del controllore a cui viene indirizzata dipende da * new_widget_path *. In questo caso, verrai indirizzato all'azione nuova in WidgetController.
Cliccando sul Link Text dirigerà Rails al nuova azione del vostro WidgetController.Si può avere
def new
@widget = Widget.new(:foo => params[:foo])
end
Poi, nel new.html.erb file di vista, è possibile consentire all'utente di creare un nuovo oggetto Widget con questo pre-definito foo attributo già compilato tramite una nascosta campo modulo:
<%= form_for(@widget) do |f| %>
<%= f.label :other_attribute %><br />
<%= f.text_field :other_attribute %>
<%= f.hidden_field :foo %>
<%= f.submit %>
<% end %>
Permettendo all'utente di creare un nuovo widget con il foo attributo già compilato!
fonte
2013-07-24 17:47:20
Grazie. Non riuscivo a capire perché la soluzione di Simon Bagreev avrebbe funzionato. Ora, devo cercare una spiegazione in CSS o JavaScript. – Katarzyna