用户评级协会

时间:2018-03-14 06:23:03

标签: ruby-on-rails associations rating

我正在开发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

1 个答案:

答案 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

试试这将解决您的问题。如果没有,请告诉我。