2010-05-31 36 views
0

我有一个通知列表,用户可以为不同类型的通知选择不同的显示选项以及返回多少结果。我将它们保留在用户模型中,因为我想让自定义排序在会话之间与用户保持一致。这里是我的用户模型中的关联关系:数据库字段没有出现在关联自定义查询中?

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 

回答

1

ActiveRecord的存取布尔属性在属性名的末尾有一个问号。改为尝试self.prefs_won?

+0

仍然出现错误:“未定义的方法'prefs_won?'为#“。 – Kevin 2010-05-31 19:37:01