2012-11-02 60 views
1

我有這樣的Rails:列表接受的「驗證:包括」價值觀場

class Question < ActiveRecord::Base 
    attr_accessible :kind, :question, :state 
    belongs_to :section 
    validates :question, :kind, :state, :presence => true 
    validates :question, :uniqueness => {:scope => [:section_id]} 
    validates :kind, :inclusion => {:in => %w(radio check stars)} 
    validates :state, :inclusion => {:in => %w(new active answered canceled)} 
end 

模型是更多鈔票來列出一些領域的所有接收到的值?例如獲得的%W(無線支票星)從外地「種」列表

回答

1

有可能是做這更好的方式,但一些在控制檯玩弄了我:

Question.validators_on(:kind).select{|v| v.kind_of? ActiveModel::Validations::InclusionValidator}.first.options 
# => {:in=>["radio", "check", "stars"]}` 
2

有點更簡潔

VALID_KINDS = %w(radio check stars) validates_inclusion_of :kind, in: VALID_KINDS

documentation