空白でないにもかかわらず、私はコンソールでモデル- 空白にすることはできません - それは
class Card < ActiveRecord::Base
belongs_to :CardColour
validates :CardColour, presence:true
を持って、それが有効ではありませんしかし、私は
@a = Card.new(:card_colour_id =1)
を入力します。私はa.errors @行うことで、なぜ尋ねると、コンソールは私がこれを見て時間を費やしてきた
=> #<ActiveModel::Errors:0x000000052e57e8 @base=#<Card id: nil, card_colour_id: 1>, @messages={:CardColour=>["can't be blank"]}>
を伝え、完全に困惑し、私は一見行うことができない理由として、私の知恵の最後にしていていますRailsで最も簡単なもの。
私は同様のタイトルで質問を探しましたが、それらはすべてもっと複雑なシナリオのようです。私はこの例よりも進んでいますが、もっと複雑なことはありません。私は実際には3つの外部キーが設定されていて、有効な値が設定されていても空白にすることはできません。
this answer私のコードが正しいことを示唆しており、実際に私が望むことを実行します(つまり、CardColourモデルの実際のオブジェクトへのcard_colour_idリンクを検証します)。
に
validates :CardColour, presence :true
を変更する必要がありますか?あなたは本当にRubyでもっと慣れ親しんでみてください。 'belongs_to:card_colour'と' validates:card_colour_id、presence:true'を試してみてください – Orlandoあなたの団体やマイグレーションも表示できますか? –
私はかなり新しいですが、何かが混乱しています.CardColourは適切なモデルであり、レコードが有効であるために記入する必要がある列のようです。 – Maxence