我无法将simple_form的hidden_field中定义的参数传递给create动作。在我们的应用程序中,用户通过会员资格进行了许多投注。成员列包括bet_id,user_id,accepted:boolean和against:boolean。会员的反对列表示用户是否正在下注或下注。在特定投注的视图中,没有会员资格的用户可以选择"同意"或"反对",这将创建一个具有适当接受的新成员资格:布尔值。以下是投注展示页面中找到的表格。
<%= simple_form_for([@bet, @bet.memberships.build]) do |f| %>
<%= f.hidden_field :against, against: false %>
<%= f.button :submit, "Agree!" %>
<% end %>
<%= simple_form_for([@bet, @bet.memberships.build]) do |f| %>
<%= f.hidden_field :against, against: true %>
<%= f.button :submit, "Against!" %>
<% end %>
以下是尝试创建操作
def create
@membership = current_user.memberships.build(bet_id: params[:bet_id], against: params[:against], accepted: :false)
redirect_to :back
end
目前这只是将接受的值保留为零。真的很感激任何帮助!感谢
答案 0 :(得分:4)
尝试使用:
<%= f.hidden_field :against, value: false %>