我在Rails上遇到困难。在这种情况下,我有一个针对本地人的模型,以及一个用于标识用户令牌(来自另一个APi)的模型。地点具有与之相关的评分(分数从0到5),每个用户都有很多评分,但每个地点只有一个。尝试执行此操作,我创建了一个具有Ratings属性的新模型,并且希望将一个等级ID与一个地方ID关联起来。
# Description of User Identifier Class
class UserIdentifier < ApplicationRecord
has_many :favorite_locals, dependent: :destroy
has_many :user_rate, dependent: :destroy
validates :identifier, presence: true
validates_numericality_of :identifier
validates_uniqueness_of :identifier
def self.find_favorites(params)
UserIdentifier.find(params).favorite_locals
end
end
# Model of Users Rates
class UserRate < ApplicationRecord
belongs_to :user_identifier
validates :rating, numericality: true
validates_numericality_of :rating, less_than_or_equal_to: 5
validates_numericality_of :rating, greater_than_or_equal_to: 0
validates :user_identifier, presence: true
end
答案 0 :(得分:0)
首先,您在has_many :user_rate, dependent: :destroy
中有一个错字。关联应命名为user_rates
,因此UserIdentifier
模型的正确代码为:
class UserIdentifier < ApplicationRecord
has_many :favorite_locals, dependent: :destroy
has_many :user_rates, dependent: :destroy
# ...
end
第二,目前尚不清楚项目中“ place”实体的命名方式。如果是FavoriteLocal
,则这是您需要的代码:
class UserRate < ApplicationRecord
belongs_to :user_identifier
belongs_to :favorite_local
# ...
end
如果这是另一个模型,则只需在belongs_to :user_identifier
下方定义归属关联。我希望你有主意。