查找是返回的Enumerator,而不是对象

| 我正在使用Rails 3应用程序,并且在其中一个控制器中有一行如下所示:
@features = Feature.find(:all, :conditions => [\'featured_at < ?\', Time.current], :order => \'featured_at ASC\')
@feature = @features.find(params[:feature])
这个想法是从数据库中获取一组“功能”,但要遵循一些约束条件,然后从该组中特别挑选一个。如果有问题的记录存在于数据库中但不符合约束条件,那么我不想返回它。因此,我正在做
@features.find
而不是
Feature.find
。 我遇到的问题是视图需要
@feature.title
,这会产生错误:
undefined method \'title\' for #<Enumerator:0x0000010216efd8>
当然,我可以通过用上面的内容代替上面的内容来回避问题,在这里我只需两次定义约束即可:
@features = Feature.find(:all, :conditions => [\'featured_at < ?\', Time.current], :order => \'featured_at ASC\')
@feature = Feature.find(params[:feature], :conditions => [\'featured_at < ?\', Time.current], :order => \'featured_at ASC\')
但这似乎很不雅致,有点多余。 最好的解决方案是什么?如何将我的
@features.find
结果视为
Feature
,而不是缺少缺少视图中需要访问的变量/方法的ѭ8?? 感谢您对此的任何想法。     
已邀请:
        我建议这样做:
@features = Feature.where(\'featured_at < ?\', Time.now).order(\'featured_at ASC\')
@feature = @features.find(feature_id)
其中
feature_id
是要从集合中拉出的ID(或ID列表)。仅第二行将命中数据库。问题在于
:all
选项强制该方法发送查询并返回数组。     

要回复问题请先登录注册