ruby on rails启用验证条件

时间:2012-09-13 17:17:36

标签: ruby-on-rails validation if-statement model

post.rb

  @allowed_post_types = [
    'type1',
    'type2',
    'type3',
    'type4'
  ]

  #validate post type
  validates :post_type, :presence => true, :inclusion=> { :in => @allowed_post_types }, :if => :valid_post_type?



  def valid_post_type?
    self.post_type != 'type5'
  end

如果validates :post_type不是 type5 ,我该如何启用:post_type代码行?

尝试以上但似乎无法正常工作

1 个答案:

答案 0 :(得分:2)

尝试:

validates :post_type, 
          :presence => true, 
          :inclusion=> { :in => @allowed_post_types }, 
          :if => lambda { |a| a[:post_type] != "type5" }