因此,我正在使用rails構建用戶模型,並且此用戶模型將具有關聯的電子郵件地址模型。電子郵件地址模型在電子郵件上具有唯一性約束。現在我已經設置好了,以便用戶能夠接受_nested_attributes_for:email_address。這適用於創建偉大的,但上更新我得到這個錯誤:更新nested_attributes_for具有唯一性約束的錯誤
u = User.create(:name => "foo", :new_password => "Passw0rd",
:email_address_attributes => {:email => "[email protected]"})
u.update({:name => "new name",
:email_address_attributes => {:email => "[email protected]"}})
我如何得到它更新名稱,同時:
ActiveRecord::JDBCError: org.postgresql.util.PSQLException:
ERROR: duplicate key value violates unique constraint
"index_email_addresses_on_email"
我可以通過在軌控制檯做這個重建這個bug不關心email_address。哪些沒有改變?
其他一些筆記和代碼:
我做我的指數EMAIL_ADDRESS電子郵件和我使用的軌道4
class User < ActiveRecord::Base
belongs_to :email_address
validates :email_address, :presence => true
accepts_nested_attributes_for :email_address
end
class EmailAddress < ActiveRecord::Base
validates_format_of :email, :with => RFC822::EmailAddress
validates :email, :presence => true
has_one :user
end
這工作。最主要的是將:id添加到email_address_attributes。我有:電子郵件,但不是:身份證。謝謝。 – NateSHolland
沒問題!我很高興我能幫上忙! –