我正在开发rails项目,我想创建一些用户评级系统,这意味着每个用户都能够将反馈留给另一个用户,用户也可以改变他留下的分数,所以问题是如何在rails中正确实现这些关联?
我已经拥有了我的用户模型
class User < ApplicationRecord
mount_uploader :avatar, ImageUploader
validates :username, presence: true, uniqueness: true, length: {in: 3..20}
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :validatable
has_many :posts, dependent: :destroy
has_many :comments, dependent: :destroy
enum role: [ :user, :admin ]
end
答案 0 :(得分:1)
嗯,正如我已经理解你的问题,这是一对一的关联。
User -many-&gt;评分
class User < ApplicationRecord
mount_uploader :avatar, ImageUploader
validates :username, presence: true, uniqueness: true, length: {in: 3..20}
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :validatable
has_many :posts, dependent: :destroy
has_many :comments, dependent: :destroy
has_many :ratings, dependent: :destroy
enum role: [ :user, :admin ]
end
现在创建一个评分模型,其属性 rating_point , user_id 和 creator_id ,其中user_id是给定的评分,creator_id是向用户提供评级的用户。
class Rating < ApplicationRecord
belongs_to: user
end
试试这将解决您的问题。如果没有,请告诉我。