私はモデル記事を持っています。 Article has_one ArticleContent。 ArticleContentはデフォルトですべての属性を検証します。しかし、私は追加の機能が必要です。 私はArticle.new()のパラメータの1つとしてdraft => falseを渡します。次にarticle.build_article_content()を実行します。 ArticleContentには動作しないコードがいくつかあります。親属性によるActiveRecord検証
def draft?
raise self.article.draft
end
validates_presence_of :header, :message => "We have no fuckin' header!", :unless => :draft?
もちろん動作しません。ドラフトの瞬間ですか?任意の適切なArticleオブジェクトがどこにも存在しないので、self.articleはnilを返します。素敵な試み、codemonkey ...
誰かが甘いアイデアを持っていますか?私は@ content.saveを作ると思います!ではないが、私はそうしようとした
非常に良いアイデア
UPDATEです:
def draft
self[:draft]
end
def draft=(value)
self[:draft] = value
end
def draft?
self[:draft]
end
validates_presence_of :field1, :message => "msg1", :unless => :draft?
validates_presence_of :field2, :message => "msg2", :unless => :draft?
validates_presence_of :field3, :message => "msg3", :unless => :draft?
それは動作しますが、どのように私はこのグループできますか?
unless self.draft?
validates_presence_of :field1, :message => "msg1"
validates_presence_of :field2, :message => "msg2"
validates_presence_of :field3, :message => "msg3"
end
この草案はありますか?メソッドが見つかりません。また、私は
@article.content.draft = @article.draft
を行う必要がありますそして、それは汚い、汚いハックすぎ
申し訳ありません、あなたの更新を見ただけです。 – noodl