2017-10-15 58 views
0

我創建了一個關注添加enumclass_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 

回答

1

它似乎與現有的可尋址模塊有衝突。嘗試將您的模塊名稱更改爲不同的名稱。

0

這些都不是問題。所發生的只是連接在需要之前沒有實例化。

嘗試

Order.connection 

Order.count 

你的願望計數訂單。

相關問題