web-dev-qa-db-ja.com

Rails形式の非表示フィールド

私のプロジェクトのビューにこのフォームがあります。 task_idを特定のコントローラーに渡す必要がありますが、ログがパラメーターを受け取っていないようです。何が問題なのかわかりません。

<%= 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 %>
26
HeshamW

=の後<%。結果をHTMLに表示する場合は常に等号が必要であるため、たとえば、フィールドタグメソッドやレンダリングで使用されます。たとえば、ifを使用する場合は、これを印刷したいものではないため、equalを使用しないでください(そうすることは可能ですが、ほとんどの場合そうではありません)

<%= 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 %>

ただし、@ AntonGrigorievが指摘したように、もしあれば、このようにオブジェクトを使用する必要があります

<%= form_for @task, :url => {:action=>"index", :controller=>"statistics"}, :html => {:class => "nifty_form", :method => "GET"} do |f| %>

または、単に hidden_​​field_tag を使用できます

<%= hidden_field_tag :task_id, task.id %>
57
fotanus