2013-04-29 4 views
24

У меня есть эта форма в виде в моем проекте. Мне нужно передать 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 %> 
+0

Проверьте HTML исходный код, а также увидеть, что значение на самом деле есть. –

+0

Что такое: taskid? Это всего лишь модель, а не объект. И его атрибуты пустые. Передайте существующий объект @task из контроллера в эту форму или используйте hidden_field_tag –

ответ

56

У вас не хватает на = после <%. Знак равенства необходим, когда вы хотите, чтобы результат появился в HTML, поэтому он используется, например, с методами тегов полей или рендеринга. Вы не должны использовать равный при использовании if, например, потому что это не то, что вы хотите напечатать (хорошо, это может быть, но скорее всего, это не)

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

Привет пожалуйста, тест с следующим кодом в себе й скрытые значения в рельсах, я попробовал и работал на одном из моего приложения:

hidden_field_tag(name, value = nil, options = {}) общественного например:

<%= hidden_field_tag(:field_name,[email protected]_status)%> 
Смежные вопросы