ruby/rails NoMethodError?使用自定义验证方法时

lor*_*ier 4 ruby validation activerecord ruby-on-rails

我是ruby和rails的新手,遇到了一个相当奇怪的错误:

class Person < ActiveRecord::Base
    validates_presence_of :description, :if => require_description_presence?

    def require_description_presence?
        self.can_send_email
    end
end
Run Code Online (Sandbox Code Playgroud)

加薪

NoMethodError in PeopleController#index

undefined method `require_description_presence?' for #<Class:0x4c4fadc> 
Run Code Online (Sandbox Code Playgroud)

Eim*_*tas 8

您应该将验证方法作为符号传递:

validates_presence_of :description, :if => :require_description_presence?
Run Code Online (Sandbox Code Playgroud)