Rails 5.2建筑协会

时间:2019-01-09 14:10:36

标签: ruby-on-rails-5 associations polymorphic-associations model-associations

目标如下:

“用户”拥有一个“房间”,他可以直接或通过“项目”向其添加“资产”,并组建一个团队来交付“资产”。

我对“属于”和“多态”关联感到迷茫。

这是各种模型的图形表示: associations

我打算这样做:

class Room < ApplicationRecord
    belongs_to :user
    has_many :projects
end

class User < ApplicationRecord
    has_many :rooms
    has_many :projects
    has_many :teams
end

class Team < ApplicationRecord
   has_many :projects, dependent: :destroy
   has_many :users

   accepts_nested_attributes_for :users, allow_destroy: true
end

class Project < ApplicationRecord
  belongs_to :team
  belongs_to :user
  belongs_to :room

  accepts_nested_attributes_for :team
end

class Asset < ApplicationRecord
  belongs_to :project
  belongs_to :room
end

评论:
1°我正在使用dependent:destroy选项来销毁团队,以防项目被破坏
2°如果有帮助,可以将团队(1)和项目(许多)之间的关系转换为一对一关系
3°,我想保留通过项目或直接在没有项目的情况下创建资产的可能性

问题
我朝正确的方向前进吗?我不确定如何将各种模型付诸实践。
例如,通过项目控制器创建一个新项目:

<%= link_to new_project_path, class:'link' do%> on

@project = current_user.room.projects.build

返回初始化常量错误。

请问您将使用哪种类型的关联?

0 个答案:

没有答案