铁轨形式的隐藏字段

Hes*_*amW 27 ruby forms field ruby-on-rails view

我的项目视图中有这个表单.我需要传递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 %>
Run Code Online (Sandbox Code Playgroud)

fot*_*nus 58

这是因为丢失在=<%.只要您希望结果出现在HTML上,就需要等号,因此它可以与字段标签方法或渲染一起使用.if例如,在使用a时你不应该使用相等,因为这不是你想要打印的(好吧,它可以,但很可能不是)

<%= 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 %>
Run Code Online (Sandbox Code Playgroud)

但是,正如@AntonGrigoriev指出的那样,如果你有这样的话,你应该使用一个对象

<%= form_for @task, :url => {:action=>"index", :controller=>"statistics"}, :html => {:class => "nifty_form", :method => "GET"} do |f| %>
Run Code Online (Sandbox Code Playgroud)

或者你可以简单地使用hidden_​​field_tag

<%= hidden_field_tag :task_id, task.id %>
Run Code Online (Sandbox Code Playgroud)