0

現在、私の製品モデルにはカテゴリの文字列列があり、フォームには製品モデルの配列から値を取得するselectがあります。現在、可能なカテゴリは、wood_stoves、arborist_gear、chainsawsの3つだけです。それぞれのカテゴリの製品を一覧表示する、それぞれのアクションを備えたコントローラーがあります。

カテゴリをデータベーステーブルに切り替えて、has_manyとbelongs_toの関係でその中に製品をネストしています。これが私の質問です。次のことは悪い考えですか?

  1. wood_stoves、arborist_gear、chainsawsのそれぞれのレコードを作成します。
  2. 製品/カテゴリ列の各値を、新しく作成されたカテゴリレコードからの対応するレコードID整数に変換する移行を作成します。
  3. category.string列をcategory.integer列に変更するステップを移行に追加します。
  4. すべてを元に戻すために必要なダウンステップを移行に追加します。

つまり、これらすべてを移行で実行して元に戻す必要がありますか、それとも元のカテゴリに対応する製品のみを元に戻すことができる、ややばかげた外観の移行を回避するために、可逆性を放棄してデータベースに手動で変更を加える必要がありますか?つまり、移行では、新しく作成されたカテゴリに属する​​製品を元に戻すことはできません。

4

1 に答える 1

1

いいですね。私が違うことをする唯一のことは、外部キー列名を「_id」で終わらせるというRailsの慣習に固執することです。そうすれば人生はもっと楽になります。あなたの場合category、製品モデルから列を削除し、列を追加しcategory_idます。

于 2011-07-11T22:32:40.983 に答える