web-dev-qa-db-fra.com

Champ masqué au format Rails

J'ai ce formulaire en vue dans mon projet. Je dois passer le task_id à un certain contrôleur, mais le journal ne semble pas recevoir les paramètres. Je ne connais pas le problème.

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

Vous manquez sur = après <%. Le signe égal est nécessaire chaque fois que vous voulez que le résultat apparaisse sur le HTML, il est donc utilisé avec les méthodes de balises de champ ou le rendu, par exemple. Vous ne devez pas utiliser l'équivalent lorsque vous utilisez un if, par exemple, car ce n'est pas ce que vous voulez imprimer (enfin, cela peut l'être, mais ce n'est probablement pas le cas)

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

Cependant, comme l'a souligné @AntonGrigoriev, vous devez utiliser un objet si vous en avez, comme celui-ci

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

ou vous pouvez simplement utiliser le hidden_field_tag

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