Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails集合在表单中选择不保存_Ruby On Rails_Simple Form - Fatal编程技术网

Ruby on rails Rails集合在表单中选择不保存

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

不管出于什么原因,这都不是储蓄。它将使我成功并重定向到它应该指向的页面,但组项上的页面id为零

<%= 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