Rails 3: ошибка Mongoid validates_inclusion_of

class Request
include Mongoid::Document 
field :code, type: String      
validates :code, :presence => true, 
                 :inclusion => { :in => proc { Listing.all_codes } }

Используя Mongoid, я пытаюсь проверить ввод :code в форме отправки, чтобы убедиться, что они используют правильный код, который уже есть в базе данных. Поле модели листинга :code также называется :code.

Это ошибка:

undefined method `all_codes' for Listing:Class

Какие-либо предложения? Что такое ссылочный эквивалент в монгоидном?


person jbearden    schedule 16.08.2012    source источник


Ответы (1)


Это ошибка уровня ruby, говорящая о том, что у вас нет метода, похожего на

class Listing
    def self.all_codes
       # stuff
    end
end

Часть self. важна.

Возможно, вы реализовали его как

class Listing
   named_scope :all_codes, :select => #...
end

Вы можете просто захотеть Listing.all На самом деле ошибка заключается в несоответствии имени метода между вашим классом Request и вашим классом Listing.

person EnabrenTane    schedule 16.08.2012