gpt4 book ai didi

ruby-on-rails - Rails 3 中的嵌套表单更新将外键设置为 NULL

转载 作者:数据小太阳 更新时间:2023-10-29 08:53:52 24 4
gpt4 key购买 nike

我正在尝试使用 formtastic 嵌套表单更新用户记录。其结构如下

User 
Admin
Address

当我发送表单以更新详细信息时,同时更新地址或管理员记录时,user_id(外键)被设置为 NULL。这是发送的数据,看起来没问题。

Parameters: {
"utf8"=>"✓", "authenticity_token"=>"some token",
"user"=>{
"id"=>"16",
"first_name"=>"User",
"last_name"=>"Name",
"email"=>"username@gmail.com",
"password"=>"[FILTERED]",
"password_confirmation"=>"[FILTERED]",
"address_attributes"=>{
"main_phone"=>"131231233",
"address1"=>"Address 1 Line",
"address2"=>"Address 2 Line",
"city"=>"Lansing",
"state"=>"Michigan",
"zip"=>"48823",
"user_id"=>"16"
},
"admin_attributes"=>{
"company_id"=>"2",
"user_id"=>"16"
},
"roles_mask"=>"1",
"user_id"=>"16"
},
"commit"=>"Update User Roles",
"company_id"=>"2",
"id"=>"16"
}

用户模型

class User < ActiveRecord::Base
has_one :address, :dependent => :destroy, :inverse_of => :user
has_one :admin, :dependent => :destroy, :inverse_of => :user
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
attr_accessible :email, :password, :password_confirmation, :remember_me, :first_name, :last_name, :roles_mask, :terms_of_use,:id
attr_accessible :owner_attributes, :admin_attributes, :address_attributes, :client_attributes
accepts_nested_attributes_for :owner, :admin, :client, :address
end

管理模型

class Admin < ActiveRecord::Base
belongs_to :company
belongs_to :user, :inverse_of => :admin

attr_accessible :company_id, :user_id
end

*地址模型

class Address < ActiveRecord::Base
belongs_to :user, :inverse_of => :address


attr_accessible :address1, :user_id, :address2, :city, :state, :zip, :main_phone, :cell_phone
end

你能帮我解决这个问题吗?谢谢。

已更新模型详细信息。我删除了验证以使其简短。

最佳答案

尽量改正

accepts_nested_attributes_for :owner, :admin, :client, :address

在你的用户模型中

accepts_nested_attributes_for :owner, :client
accepts_nested_attributes_for :admin, :address, :update_only => true

关于ruby-on-rails - Rails 3 中的嵌套表单更新将外键设置为 NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6420417/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com