模型关联的问题
Trouble with model associations
商店的目标是创建奖励并将每个奖励与他选择的粉丝相关联。这是我的设置:
class Shop < ApplicationRecord
has_many :rewards
has_many :follows
has_many :users, through: :follows
end
class Reward < ApplicationRecord
belongs_to :shop
end
class Follow < ApplicationRecord
belongs_to :shop
belongs_to :user
has_many :reward_participant
end
class User < ApplicationRecord
has_many :follows
has_many :shops, through: :follows
end
我创建这个模型是为了捕获奖励和关注者关联。
class RewardParticipant < ApplicationRecord
belongs_to :reward
belongs_to :follow
end
并且我创建了以下迁移:
class CreateRewards < ActiveRecord::Migration[6.0]
def change
create_table :rewards do |t|
t.string :title
t.text :body
t.date :expires
t.integer :shope_id
t.timestamps
end
end
end
class CreateRewardParticipants < ActiveRecord::Migration[6.0]
def change
create_table :reward_participants do |t|
t.integer :reward_id
t.integer :follow_id
t.timestamps
end
end
end
我无法确定这是否是模型关联和迁移的正确方法。提前感谢您的帮助!
总的来说你是对的。
我们想让用户关注一个店铺,一个店铺可以创建奖励,给很多粉丝很多奖励。
1。视觉架构:
2。模型协会(完整版)
user.rb
has_many :follows
has_many :reward_follows, through: :follows
has_many :rewards, through: :reward_follows # NOT through shops
has_many :shops, through: :follows
follow.rb
belongs_to :user
belongs_to :shop
has_many :reward_follows
shop.rb
has_many :rewards
has_many :reward_follows, through: :rewards # NOT through follows
has_many :follows
has_many :users, through: :follows
reward.rb
has_many :reward_follows
belongs_to :shop
has_many :follows, through: :reward_follows
has_many :users, through: :follows
3。不要使用日期字段。使用日期时间字段。
理由:https://www.ruby-forum.com/t/time-without-date/194146
这为我个人节省了长期的工作时间。
商店的目标是创建奖励并将每个奖励与他选择的粉丝相关联。这是我的设置:
class Shop < ApplicationRecord
has_many :rewards
has_many :follows
has_many :users, through: :follows
end
class Reward < ApplicationRecord
belongs_to :shop
end
class Follow < ApplicationRecord
belongs_to :shop
belongs_to :user
has_many :reward_participant
end
class User < ApplicationRecord
has_many :follows
has_many :shops, through: :follows
end
我创建这个模型是为了捕获奖励和关注者关联。
class RewardParticipant < ApplicationRecord
belongs_to :reward
belongs_to :follow
end
并且我创建了以下迁移:
class CreateRewards < ActiveRecord::Migration[6.0]
def change
create_table :rewards do |t|
t.string :title
t.text :body
t.date :expires
t.integer :shope_id
t.timestamps
end
end
end
class CreateRewardParticipants < ActiveRecord::Migration[6.0]
def change
create_table :reward_participants do |t|
t.integer :reward_id
t.integer :follow_id
t.timestamps
end
end
end
我无法确定这是否是模型关联和迁移的正确方法。提前感谢您的帮助!
总的来说你是对的。
我们想让用户关注一个店铺,一个店铺可以创建奖励,给很多粉丝很多奖励。
1。视觉架构:
2。模型协会(完整版)
user.rb
has_many :follows
has_many :reward_follows, through: :follows
has_many :rewards, through: :reward_follows # NOT through shops
has_many :shops, through: :follows
follow.rb
belongs_to :user
belongs_to :shop
has_many :reward_follows
shop.rb
has_many :rewards
has_many :reward_follows, through: :rewards # NOT through follows
has_many :follows
has_many :users, through: :follows
reward.rb
has_many :reward_follows
belongs_to :shop
has_many :follows, through: :reward_follows
has_many :users, through: :follows
3。不要使用日期字段。使用日期时间字段。
理由:https://www.ruby-forum.com/t/time-without-date/194146
这为我个人节省了长期的工作时间。