未定义的方法`reorder'用于活动管理员

时间:2013-03-16 05:38:12

标签: ruby-on-rails ruby-on-rails-3.2 activeadmin

我正在尝试在我的模型之一的主动管理员中使用范围,我得到了这个error undefined method reorder' for array.

我已经成功地在具有活动管理员的另一个模型中使用了范围,我无法调试为什么会出现此问题。

以下是来自主动管理员的代码: -

ActiveAdmin.register Startup do

    scope :reached do |startups|
        startups.all
    end

end

任何想法可能是什么问题?

2 个答案:

答案 0 :(得分:0)

你正在返回一个数组而不是一个ActiveRecord关系,我的猜测是你试图把它链接到像.order这样的方法不起作用。你想要的范围是什么?

如果您只想要所有记录,则不需要范围。如果您想缩小初创公司的范围,那么您应该使用类似Startup.where(#condition you want met)

的内容

答案 1 :(得分:0)

这是我在模特级别的协会。

在startup.rb中

has_many :fund_requests, :dependent => :destroy

在fund_request.rb

belongs_to :startup

我试图在达到状态(基金申请中的属性)的基金申请范围内。

然而,在模型级别工作的此类内容无法与活动管理员一起使用

scope :reached do |startups|



     startups.fund_requests.where(status = ?', 'Pending')

end

这给了我'重新排序'错误

这样写它对我有用: -

scope :reached do |startups|
        startups.joins(:fund_requests).where(['fund_requests.status = ?', 'Pending'])
    end`

我不知道为什么链接不起作用,加入工作正在发挥作用。