0

私は次のモデルを持っています:

class Article < ActiveRecord::Base
    attr_accessible :body, :date_time, :excerpt, :permalink, :title, :premium, :status
    before_create :set_defaults
    validates_inclusion_of :status , :in => %w(draft pending published) , :allow_blank => false

    def set_defaults
        self.status ||= 'draft'
    end
end

ただし、次のようなものを作成する場合:

article = Article.new( {
            "title" => "test",
            "body" => "test" ,
            "excerpt" => "test"
            } )

article.save

失敗し、次のエラーが表示されます。

[:status, "is not included in the list"]

デフォルトが設定されていない理由を理解しようとしています。何か案は?

4

1 に答える 1

0

必要だと思いますbefore_validation :set_defaults , :on => :create、検証が実行されてから、コールバックを作成する前に。

于 2013-06-13T17:19:37.093 に答える