【发布时间】:2009-07-01 10:25:35
【问题描述】:
在我的 Rails 2.3.2 应用中
我有 2 个模型:
class Post
has_many :approved_comments, :class_name => 'Comment', :conditions => ['approved => ?', true]
end
class Comment
belongs_to :post
end
由于某种原因,当我尝试急切加载我的 cmets 时,出现错误
post = Post.find(:first, :conditions => ["permalink=?", permalink], :include => :approved_comments
未定义的方法“加载?”为了 #
来自 Association_preload.rb 第 228 行
这是一个已知问题,还是我做错了什么或不受支持?
我似乎在http://groups.google.com/group/maine-ruby-users-group/browse_thread/thread/796cf58b62f9bc52找到了一些关于此的讨论
【问题讨论】:
-
对条件使用哈希更安全::conditions => {:approved => true} 和 :conditions => {:permalink => permalink}。我更不知道数据库。
-
你也可以使用 Post.first(:conditions ...) 代替 Post.find(:first, ....)。还可以考虑使用 named_scopes 来查找已批准的 cmets
-
谢谢 klew,我会记住这一点,我在休息一年后回到了一些 Rails 开发,所以需要一点时间才能赶上。
标签: ruby-on-rails ruby activerecord eager-loading