簡體   English   中英

Rails Collection在表單中選擇“不保存”

[英]Rails Collection Select in Form not Saving

無論出於何種原因,這都無法節省。 這將使我成功,並重定向到應該的頁面,但組項目上的page_id為nil。

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

和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"}

一組has_one頁。 頁面has_one組。 關聯的ID在每個模型上。

有什么想法嗎? 我把頭撞在牆上是因為這可能是一個愚蠢的問題。

你嘗試過這個嗎? 我認為問題在於group_params方法


def group_params
  params.require(:group).permit(:page_id)
end
<%= simple_form_for @group do |f| %>
    <%= f.input :page_id, 
        collection: @pages,
        selected: group.page,
        label: false
        %>
    <%= f.button :submit, "Assign Page" %>
<% end %>

groups_controller.rb

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

並且您的關聯應該是頁面has_one組和組所屬頁面

替換控制器中的強參數

def group_params
  params.require(:group).permit(:name, :page, :page_id)
end

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM