我有一个通知列表,用户可以为不同类型的通知选择不同的节目选项以及返回的结果数量。我将它们保留在用户模型中,因为我希望自定义排序在会话之间与用户保持一致。这是我的用户模型中的关联:
has_many :notifications,
:class_name => "Notification",
:foreign_key => "user_id",
:conditions => ["won = ? and lost = ? and paid = ?", self.prefs_won, self.prefs_lost, self.prefs_paid],
:limit => self.prefs_results.to_s
但是当我使用上面的代码时,Rails会为self.prefs_won抛出一个“未知方法”错误。它绝对是我的数据库中的一个字段并设置为布尔值,但Rails无法找到它......问题是什么?
编辑:
以下是迁移:
t.boolean :prefs_won, :default => true
t.boolean :prefs_lost, :default => true
t.boolean :prefs_paid, :default => true
t.integer :prefs_results, :default => 10
答案 0 :(得分:1)
布尔属性的ActiveRecord访问器在属性名称的末尾有一个问号。请改为self.prefs_won?
。