0

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

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

这是来自活动管理员的代码:-

ActiveAdmin.register Startup do

    scope :reached do |startups|
        startups.all
    end

end

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

4

2 回答 2

0

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

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

于 2013-03-16T18:53:23.407 回答
0

这是我在模型级别的关联。

在启动.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`

我不知道为什么链接不起作用而连接起作用。

于 2013-03-18T04:26:40.253 回答