【发布时间】:2021-05-20 21:18:46
【问题描述】:
我有一个模型 Book,它有一个名为 status 的 db 列,并定义了如下范围:
class Book < ApplicationRecord
STATUSES = %w[planned acquired].freeze
validates :status, inclusion: { in: STATUSES }
scope :acquired, -> { where(status: 'acquired') }
end
现在在 ActiveAdmin admin/books.rb 内部,我想使用该范围来检查是否获得了图书,如下所示:
ActiveAdmin.register Book do
(...)
after_create do |book|
BookInfo.create!(book: book)
BookCost.create!(book: book) if book.acquired
end
end
是否可以在代码内部使用模型范围而不是用于范围视图或过滤器?使用我得到的当前代码:
NoMethodError(#Book:0x00007fa22ce65458 的未定义方法“获取”):
【问题讨论】: