gpt4 book ai didi

ruby-on-rails - 模型关联问题

转载 作者:行者123 更新时间:2023-12-03 23:00:39 24 4
gpt4 key购买 nike

目标是让商店创造奖励并将每个奖励与他选择的追随者相关联。这是我的设置:

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. 视觉架构:
enter image description here
2.模型关联(完整版)
用户名

has_many :follows
has_many :reward_follows, through: :follows
has_many :rewards, through: :reward_follows # NOT through shops
has_many :shops, through: :follows
关注.rb
belongs_to :user
belongs_to :shop
has_many :reward_follows
商店.rb
has_many :rewards
has_many :reward_follows, through: :rewards # NOT through follows
has_many :follows
has_many :users, through: :follows
奖励.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
这个人为我节省了长期的工作时间。

关于ruby-on-rails - 模型关联问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66007895/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com