所以我是新加入的。我不确定这是否是我所需要的。这是我当前的设置和情况:
我有两个用户模型。
Company
User
我需要创建一个属于公司模型的表,但是可以由用户模型来回答。每个公司都可以有几个应用程序,因此我称之为我的第三个模型
Application
到目前为止我已经做了
class Application < ActiveRecord::Base
belongs_to :company
end
和
Class Company < ActiveRecord::Base
has_many :applications
end
我通过运行以下命令直接创建了应用程序模型:
rails g model application
我已经犯了一些错误了吗?到目前为止,我做得还好吗?接下来的步骤是什么。
最佳答案
目前看来还不错
--
联接表
有两种类型的联接表-has_and_belongs_to_many
&has_many :through
他们做同样的事情(创建一个many-to-many
关系),这意味着您可以通过@model.objects
调用join model
从阅读您的信息来看,您可以这样做:
#app/models/user.rb
Class User < ActiveRecord::Base
has_many :applications
has_many :companies, through: :applications
end
#app/models/application.rb
Class Application < ActiveRecord::Base
#fields - id | user_id | company_id | etc | etc | created_at | updated_at
belongs_to :company
belongs_to :user
end
#app/models/company.rb
Class Company < ActiveRecord::Base
has_many :applications
has_many :users, through: :applications
end
关于mysql - 在Rails中设置联接表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24350546/