Rails隐藏字段undefined method 'merge'错误

15 浏览
0 Comments

Rails隐藏字段undefined method 'merge'错误

我想在rails中做这样的事情

目前我在rails中已经做了这些:

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

但是我会得到这个错误:

undefined method `merge' for "test":String

如何在rails中传递hidden_field的值?

admin 更改状态以发布 2023年5月22日
0
0 Comments

您正在使用hidden_field而不是hidden_field_tag。因为您使用的是非_tag版本,假定您的控制器已经在支持表单的对象上设置了该属性的值。例如:

控制器:

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

视图:

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

0
0 Comments

你应该这样做:

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

hidden_field期望作为第二个参数传入一个哈希。

0