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:

    

Mais alors je reçois cette erreur:

 undefined method `merge' for "test":Ssortingng 

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

Tu devrais faire:

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

hidden_field attend un hachage comme second argument

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 atsortingbut sur l’object qui sauvegarde le formulaire. Par exemple:

manette:

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

vue:

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

Cela fonctionne bien dans Ruby 1.9 & rails 4

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

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

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

Cela fonctionne aussi dans Rails 3.2.12:

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

Par ailleurs, je n’utilise pas de champs cachés pour envoyer des données d’un serveur à un autre. Les atsortingbuts de données sont géniaux. Tu peux faire

 <%= form_for @order, 'data-service' => 'test' do |f| %> 

Et puis obtenez la valeur d’atsortingbut avec jquery

 $('form').data('service')