アクティブなレコードのフィールド名に「_id」サフィックスを使用することの意味は何ですか?
t.string :foo_id
これは常に「foo」テーブルへの外部キーであると想定していますか?
のようなものを使用する方が良いですか?
t.string :foo_id_value
レールのあいまいさを避けるには?
この id 値は外部キーとは関係がなく、必ずしも一意であるとは限らないという考えです。
アクティブなレコードのフィールド名に「_id」サフィックスを使用することの意味は何ですか?
t.string :foo_id
これは常に「foo」テーブルへの外部キーであると想定していますか?
のようなものを使用する方が良いですか?
t.string :foo_id_value
レールのあいまいさを避けるには?
この id 値は外部キーとは関係がなく、必ずしも一意であるとは限らないという考えです。
奇妙な検証メッセージが表示される場合があります。
のようなバリデーションを持つ Rails 3 モデルを指定すると、空白のvalidates :foo_id, :presence => true
ままfoo_id
にして検証すると、予想される「Foo id can't be blank」ではなく、「Foo can't be blank」というメッセージが表示されます。
それは慣例の問題です。私の経験では、そうしない限り問題はありません。belongs_to :foo
他の開発者のあいまいさを避けたい場合は、そうです、あいまいさを避けることをお勧めします。