私はコメント表す(かなり単純)モデル持っている:(そのフィールドが正しく設定されて)Rails:class_nameとの関係が正しく保存されませんか?
class Comment < ActiveRecord::Base
STATES = [:processing, :accepted, :declined]
belongs_to :note
belongs_to :author, :class_name => 'User'
validates_inclusion_of :state, :in => STATES
validates_presence_of :author
default_scope :order => 'created_at DESC'
def initialize(attributes={})
super(attributes)
self.state ||= 'processing'
end
end
しかし、毎回私はコメントを保存し、作者の関係は常に(セーブに失敗しただけでなく、実際にコメントは正常に保存され、著者は除外されます...)。これは、著者フィールド(Comment.first.author
がnil
)の検証のためにComment.first.valid?
がfalse
に戻るまで続きます。
私は、state-fieldのデフォルト値を間違った方法で処理している疑いがありますか?その場合は、代わりにデフォルト値を設定する必要がありますか?
事前にあなたの助けのためのTHX
https://github.com/pluginaweek/state_machine – Luke
これは新しいコメントの作成時または既存のコメントの更新時にのみ起こりますか? – Luke
既存のコメントを更新するときにも発生します – DeX3