我想在Rails中实现以下功能:
以下是我在Rails中的实现:
<%= form_for @order do |f| %>
<%= f.hidden_field :service, "test" %>
<%= f.submit %>
<% end %>
但是我遇到了这个错误:
undefined method `merge' for "test":String
如何在Rails中传递隐藏字段的值?
我想在Rails中实现以下功能:
以下是我在Rails中的实现:
<%= form_for @order do |f| %>
<%= f.hidden_field :service, "test" %>
<%= f.submit %>
<% end %>
但是我遇到了这个错误:
undefined method `merge' for "test":String
如何在Rails中传递隐藏字段的值?
你应该做:
<%= f.hidden_field :service, :value => "test" %>
hidden_field
期望第二个参数为哈希表
def new
...
@order.service = "test"
...
end</pre>
视图:
<%= form_for @order do |f| %>
<%= f.hidden_field :service %>
<%= f.submit %>
<% end %>
它在 Ruby 1.9 和 Rails 4 中运行良好
<%= f.hidden_field :service, value: "test" %>
Ruby 1.9版本中哈希表新句法的版本:
<%= f.hidden_field :service, value: "test" %>
顺便说一句,我不使用隐藏字段将数据从服务器发送到浏览器。 数据属性 很棒。你可以这样做
<%= form_for @order, 'data-service' => 'test' do |f| %>
然后使用jQuery获取属性值
$('form').data('service')
form_for |f|
,也会写成<%= hidden_field_tag :service, "test" %>
,这有点不一致。 - Augustin Riedinger