实施后
Following implementation
我有一个用户模型和一个商店模型。我想设置模型关联,以便用户能够关注商店。这意味着用户将成为关注者,商店将成为关注者。
我为此创建了一个跟随模型,并添加了与其他模型的关联:
class CreateFollows < ActiveRecord::Migration[6.0]
def change
create_table :follows do |t|
t.integer :store_id
t.integer :user_id
t.string :uid
t.timestamps
end
end
end
class Follow < ApplicationRecord
belongs_to :store
belongs_to :user
end
class User < ApplicationRecord
has_many :follows
end
它正在运行,但我很确定这不是正确的设置。我也发现了这个 tutorial 但我不知道如何在我的案例中使用它。关于如何正确设置模型关联的任何想法?提前致谢!
你基本上明白了。
您缺少的是让用户看到他们关注的商店,反之亦然。用 has_many :through
.
做
class User < ApplicationRecord
has_many :follows
has_many :stores, through: :follows
end
class Store < ApplicationRecord
has_many :follows
has_many :users, through: :follows
end
现在 user.stores
将获取用户关注的商店,store.users
将获取哪些用户关注该商店。它将为您处理联接并缓存结果。
我有一个用户模型和一个商店模型。我想设置模型关联,以便用户能够关注商店。这意味着用户将成为关注者,商店将成为关注者。
我为此创建了一个跟随模型,并添加了与其他模型的关联:
class CreateFollows < ActiveRecord::Migration[6.0]
def change
create_table :follows do |t|
t.integer :store_id
t.integer :user_id
t.string :uid
t.timestamps
end
end
end
class Follow < ApplicationRecord
belongs_to :store
belongs_to :user
end
class User < ApplicationRecord
has_many :follows
end
它正在运行,但我很确定这不是正确的设置。我也发现了这个 tutorial 但我不知道如何在我的案例中使用它。关于如何正确设置模型关联的任何想法?提前致谢!
你基本上明白了。
您缺少的是让用户看到他们关注的商店,反之亦然。用 has_many :through
.
class User < ApplicationRecord
has_many :follows
has_many :stores, through: :follows
end
class Store < ApplicationRecord
has_many :follows
has_many :users, through: :follows
end
现在 user.stores
将获取用户关注的商店,store.users
将获取哪些用户关注该商店。它将为您处理联接并缓存结果。