Ruby on rails Rails集合在表单中选择不保存
不管出于什么原因,这都不是储蓄。它将使我成功并重定向到它应该指向的页面,但组项上的页面id为零Ruby on rails Rails集合在表单中选择不保存,ruby-on-rails,simple-form,Ruby On Rails,Simple Form,不管出于什么原因,这都不是储蓄。它将使我成功并重定向到它应该指向的页面,但组项上的页面id为零 <%= simple_form_for group do |f| %> <%= f.input :page_id, collection: @pages, selected: group.page, label: false %> <%= f.button :submit, "Assign
<%= simple_form_for group do |f| %>
<%= f.input :page_id,
collection: @pages,
selected: group.page,
label: false
%>
<%= f.button :submit, "Assign Page" %>
<% end %>
和params(我已经尝试了所有可能的变化)。奇怪的是,表单似乎正在创建一个嵌套参数
def group_params
params.require(:group).permit(:name, :page, :group => [:page_id])
end
返回的请求参数为:
{"utf8"=>"✓", "_method"=>"patch",
"authenticity_token"=>"Cccccii383838=",
"group"=>{"page_id"=>"2"}, "commit"=>"Assign Page",
"action"=>"update", "controller"=>"groups", "id"=>"3"}
一个组有一页。一个页面有一个组。每个模型上都有相关的ID
有什么想法吗?我正为一个可能是愚蠢的问题而把头撞在墙上。你试过这个吗?我认为问题在于
组参数方法
def group_params
params.require(:group).permit(:page_id)
end
并且您的关联应该是页面有一个组并且组属于页面替换控制器中的强参数
def group_params
params.require(:group).permit(:name, :page, :page_id)
end
组属于页面
应该是您的关联,我猜您在组参数中允许页面id
。你能试试更新属性吗!并检查验证错误
<%= simple_form_for @group do |f| %>
<%= f.input :page_id,
collection: @pages,
selected: group.page,
label: false
%>
<%= f.button :submit, "Assign Page" %>
<% end %>
def update
@group = Group.find(params[:id])
@group.update_attributes(group_params)
redirect_to groups_path, notice: "Did it"
end
def group_params
params.require(:group).permit(:name, :page_id)
end
def group_params
params.require(:group).permit(:name, :page, :page_id)
end