我有用户。每个用户都可以创造旅程。当用户创建旅程时,其他用户可以加入jorney。如何正确创建协会?
在user_model中:
has_many :journeys
在journey_model中:
belong_to :user
我可以添加到journey_model:has_many :users
吗?
答案 0 :(得分:3)
#app/models/user.rb
class User < ActiveRecord::Base
has_many :created_journeys, class_name: "Journey", foreign_key: :user_id
has_and_belongs_to_many :journeys
end
#Need a table journeys_users - journey_id | user_id
#app/models/journey.rb
class Journey < ActiveRecord::Base
belongs_to :owner, class_name: "User", foreign_key: :user_id
has_and_belongs_to_many :users
end
这将允许您拨打以下电话:
@user = User.find params[:user_id]
@journey = @user.journeys.find params[:id]
@journey << current_user
<强>许多对多强>
您的问题的关键在于您正在寻找多对多关联。
这有两种形式:
这两种方法都以不同的方式提供类似的结果:
如果需要,我可以解释更多。