我有以下型号:
Account
has_many :libraries
Library
has_many :topics
belongs_to :account
Topic
has_many :functions
belongs_to :library
Function
has_one :example
belongs_to :topic
Example
belongs_to :function
我希望能够做到这样的事情:
some_account.libraries
some_account.topics
some_account.functions
some_account.examples
此外,我希望能够为后代分配一个帐户,即
some_example.account = some_account
some_function.account = some_account
some_topic.account = some_account
some_library.account = some_account
提供一些背景信息: 我让用户(帐户)创建每个库,主题,功能,示例。单独记录。然后,用户可以自由更改记录的关联方式:更改函数的主题,将主题移动到其他库,向函数添加示例,等等。
据我所知,无论创建什么记录,我都需要将其分配给用户(帐户),以便我可以列出用户创建的每个模型记录,以及防止其他用户看到不属于他们的东西
虽然我可能过于复杂,但我真的不知道:(
提前致谢。
答案 0 :(得分:1)
刚刚放
belongs_to :account
用户可以制作的每个实体...并添加外键,
Account
has_many :libraries
has_many :topics
has_many :functions
has_many :examples
(注意:我使用hobo_fields gem来简化迁移)
那样..如果他们改变哪些功能在哪些主题等等......你不能放松谁创造它。
如果您想确保用户无法将其主题添加到其他人的库中,只需在记录上放置验证以防止它。