我正在尝试在我的模型之一的主动管理员中使用范围,我得到了这个error undefined method reorder' for array.
我已经成功地在具有活动管理员的另一个模型中使用了范围,我无法调试为什么会出现此问题。
以下是来自主动管理员的代码: -
ActiveAdmin.register Startup do
scope :reached do |startups|
startups.all
end
end
任何想法可能是什么问题?
答案 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`
我不知道为什么链接不起作用,加入工作正在发挥作用。