简体   繁体   中英

Hidden field in rails form

I have this form in a view in my project. I need to pass the task_id to a certain controller, but the log does not seem to be receiving the parameters. I don't know what the problem is.

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

You are missing on = after <% . The equal sign is needed whenever you want to the result appears on the HTML, so it is used with the field tags methods or render, for instance. You should not use the equal when using a if , for example, because this is not what you want to print (well, it can be, but most likely it isn't)

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

However, as @AntonGrigoriev pointed out, you should use a object if you have, like this

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

or you can simply use the hidden_field_tag

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

Hi please test with following code to send hidden value in rails, I have tried and worked for one of my application :

hidden_field_tag(name, value = nil, options = {}) public eg:

<%= hidden_field_tag(:field_name,value=@offer_status)%>

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM