Я хочу сделать что-то подобное в рельсах
Вот то, что я до сих пор в рельсах:
<%= form_for @order do |f| %>
<%= f.hidden_field :service, "test" %>
<%= f.submit %>
<% end %>
Но тогда я получаю эту ошибку:
undefined method `merge' for "test":String
Как я могу передать значения в моем скрытом поле в рельсах?
Ответы:
Ты должен сделать:
hidden_field
ожидает хэш в качестве второго аргументаисточник
<%= hidden_field_tag :service, "test" %>
когда не используемform_for |f|
...Вы используете скрытое поле вместо скрытого тега поля. Поскольку вы используете версию, отличную от _tag, предполагается, что ваш контроллер уже установил значение этого атрибута для объекта, который поддерживает форму. Например:
контроллер:
Посмотреть:
источник
Работает нормально в Ruby 1.9 и rails 4
источник
Версия с новым синтаксисом для хэшей в ruby 1.9:
источник
Это также работает в Rails 3.2.12:
<%= f.hidden_field :service, :value => "test" %>
источник
Кстати, я не использую скрытые поля для отправки данных с сервера в браузер. Атрибуты данных потрясающие. Ты можешь сделать
А затем получить значение атрибута с помощью jquery
источник