所以我是新加入的。我不确定这是否是我所需要的。这是我当前的设置和情况:
我有两个用户模型。

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/

10-09 07:22