我有以下型號:可以在沒有連接表的情況下使用accep_nested_attributes_?
class Club < ApplicationRecord
has_many :users
accepts_nested_attributes_for :users
end
class Users < ApplicationRecord
belongs_to :club
end
我的理解是,我應該能夠做到這一點的用戶添加到俱樂部:
c = Club.first
p = { :users_attributes => [{:id => 1, :club_id => 2}] }
c.update(p)
當我這樣做,我收到以下錯誤:
2.4.1 :003 > c.update(p)
(0.3ms) BEGIN
User Load (0.8ms) SELECT "users".* FROM "users" WHERE "users"."club_id" = $1 AND "users"."id" = 1 [["club_id", 2]]
(0.2ms) ROLLBACK
ActiveRecord::RecordNotFound: Couldn't find User with ID=1 for Club with ID=2
Rails的似乎是檢查,如果用戶已經是俱樂部讓我更新用戶之前的成員。
如果我嘗試將已經在俱樂部中的用戶修改爲另一個俱樂部,它將起作用。
我想我可以通過創建一個連接表來解決這個問題,但我寧願不要。幫幫我!
用戶可以是多個俱樂部的成員嗎?或者,用戶當時只是1個俱樂部的成員? – Crashtor
沒有。 users表有一個club_id字段。 –
好吧,然後我看到你正在嘗試做什麼 – Crashtor