我有4個複雜關係的模型。其中3個應該有描述,應該只對創建的用戶啓用。換句話說,每個用戶都有自己的Group(例如)或Post的其他描述。我們只討論一個模型,因爲其他模型非常相似。我有什麼: user.rb私人領域的多個模型,如何使RoR?
class User < ActiveRecord::Base
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable, :omniauthable, omniauth_providers: [:vkontakte]
has_and_belongs_to_many :groups
has_many :descriptions
end
group.rb
class Group < ActiveRecord::Base
has_and_belongs_to_many :users
has_many :descriptions, :as => :describable
accepts_nested_attributes_for :descriptions
end
description.rb
class Description < ActiveRecord::Base
belongs_to :user
belongs_to :describable, :polymorphic => true
end
表描述
create_table "descriptions", force: :cascade do |t|
t.integer "user_id" -- belongs_to
t.string "content"
t.integer "describable_id"
t.string "describable_type"
end
如何顯示屬於current_user(我使用devise)的組的說明?如何使用嵌套描述構建更新表單?
我試着去做,但它不起作用。我已經問過關於問題here的一部分的問題。
您在用戶模型中缺少多態關聯的一部分,它應該是'has_many:descriptions,as :: describeable'(您在組模型中正確) – Roma149
@ Roma149用戶不是可描述的模型。它只是has_many - belongs_to的許多描述。並且這些描述描述了模型組,帖子等。 – nobilik
好的,但是'Description'模型中沒有'belongs_to:user',所以我想如果您嘗試使用該關聯會得到一個錯誤。 – Roma149