151 votes

Rails Champ caché Méthode non définie 'fusion' erreur

Je veux faire quelque chose comme ça dans les rails

Voici ce que j'ai jusqu'ici dans les rails:

 <%= form_for @order do |f| %>
  <%= f.hidden_field :service, "test" %>
  <%= f.submit %>
<% end %>
 

Mais alors je reçois cette erreur:

 undefined method `merge' for "test":String
 

Comment puis-je transmettre des valeurs dans mon hidden_field sur des rails?

415voto

apneadiving Points 64660

Tu devrais faire:

 <%= f.hidden_field :service, :value => "test" %>
 

hidden_field attend un hachage comme second argument

55voto

user132447 Points 771

Vous utilisez un hidden_field au lieu d'un hidden_field_tag. Étant donné que vous utilisez la version non _tag, il est supposé que votre contrôleur a déjà défini la valeur de cet attribut sur l'objet qui sauvegarde le formulaire. Par exemple:

manette:

 def new
      ...
      @ order.service = "test"
      ...
    fin 

voir:

    <%= form_for @order do |f| %>
      <%= f.hidden_field :service %>
      <%= f.submit %>
    <% end %>

27voto

Tushar.PUCSD Points 343

Cela fonctionne bien dans Ruby 1.9 & rails 4

 <%= f.hidden_field :service, value: "test" %>
 

3voto

Michael Durrant Points 30342

Une version avec la nouvelle syntaxe pour les hachages dans ruby ​​1.9:

 <%= f.hidden_field :service, value: "test" %>
 

2voto

xenocidebrm Points 11

Cela fonctionne aussi dans Rails 3.2.12:

<%= f.hidden_field :service, :value => "test" %>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X