0
我有兩個關聯模型:爲什麼我無法創建像這樣的ActiveRecord條目?
Class User < ApplicationRecord
has_many :company_accounts
end
Class CompanyAccount < ApplicationRecord
belongs_to :users
end
我想創建一個CompanyAccount爲現有用戶。此作品:
@user.company_accounts.create
爲什麼不能正常工作?
CompanyAccount.create(user_id: @user.id)
完整的錯誤信息是「用戶必須存在」。我正在使用rails 5.0.1。
這個工程,非常感謝!你能解釋爲什麼第一個命令有效,第二個不是當我使用':users'時? – flxkrmr
我不確定100%,但首先你擁有@ user.company_accounts.create,這樣rails會建立一個適當的查詢,其次你有CompanyAccount.create,所以你沒有用戶在這個範圍內的屬性。你可以使用這個複製它:'company_accounts = CompanyAccount.where(user_id:@ user.id)'然後'company_accounts.create'。它以其他方式觸摸belongs_to,但我現在無法複製它,所以我不確定區別在哪裏。 – Argonus
好吧,我發現某種解釋http://blog.bigbinary.com/2016/02/15/rails-5-makes-belong-to-association-required-by-default.html,據我所知,鐵軌是尋找模型'用戶'來比較它並找到合適的'用戶',但你有模型'用戶',所以它無法找到它,錯誤有點誤導。首先,你已經在scoped屬性中定義了用戶,所以rails 5不在尋找他。 (用戶有一個適當的關聯名稱) – Argonus