Ti manca il =
dopo <%
. Il segno di uguale è necessario ogni volta che si desidera visualizzare il risultato sull'HTML, quindi viene utilizzato, ad esempio, con i metodi dei tag di campo o il rendering. Non si deve usare il pari quando si utilizza un if
, per esempio, perché questo non è ciò che si desidera stampare (bene, può essere, ma molto probabilmente non lo è)
<%= form_for :taskid, :url => {:action=>"index", :controller=>"statistics"}, :html => {:class => "nifty_form", :method => "GET"} do |f| %>
<%= f.hidden_field :task_id, :value => task.id%>
<td><%= f.submit "اختر مهمة لاظهار احصائياتها منفرده"%></td>
<% end %>
Tuttavia, come @AntonGrigoriev ha sottolineato, è necessario utilizzare un oggetto se si dispone, come questo
<%= form_for @task, :url => {:action=>"index", :controller=>"statistics"}, :html => {:class => "nifty_form", :method => "GET"} do |f| %>
o si può semplicemente utilizzare il hidden_field_tag
<%= hidden_field_tag :task_id, task.id %>
Controllare il codice sorgente HTML e per vedere che il valore è in realtà lì. –
Che cos'è: taskid? È solo un modello, non un oggetto. E i suoi attributi sono vuoti. Passare l'oggetto esistente @task dal controller a questo modulo o utilizzare hidden_field_tag –