我创建了一个关注点来添加一个enum
和class_methods
# app/models/concerns/addressable.rb
module Addressable
extend ActiveSupport::Concern
included do
enum address_province: {
Queen: 'Q',
Bear: 'B'
}
end
class_methods do
def options_for_cities
%w[a b]
end
def scream
'aaaaaaaaaaaaaaaaaa'
end
end
end
# app/models/order.rb
class Order < ApplicationRecord
include Addressable
end
但是,当我尝试在 中执行这些方法中的任何一个时Order
,它们都不起作用。
Running via Spring preloader in process 3004
Loading development environment (Rails 5.1.2)
irb(main):001:0> Order.options_for_cities
NoMethodError: undefined method `options_for_cities' for Order (call 'Order.connection' to establish a connection):Class
Did you mean? options_for_with_status
from (irb):1
irb(main):002:0> Order.scream
NoMethodError: undefined method `scream' for Order (call 'Order.connection' to establish a connection):Class
from (irb):2
irb(main):003:0> Order.address_provinces
NoMethodError: undefined method `address_provinces' for Order (call 'Order.connection' to establish a connection):Class
from (irb):3