0

私はレールに不慣れで、非常に基本的な質問があります。

モデルを作成している間、例えば。レシピとその手順を保存する必要があります。ここで、レシピテーブル、ステップテーブル、recipe_stepsテーブルを作成する必要がありますか、それともレシピ、ステップテーブルを作成し、レシピのモデルにhas_many:stepsを定義する必要がありますか?

どんな助けでも素晴らしいでしょう。

どうもありがとう

4

1 に答える 1

0

データベースには常に 3 つのテーブルが必要です。あなたが言ったようrecipes stepsに、そしてrecipe_steps

次に、モデルには 2 つのソリューションがあります。3つのモデルを持つ最初のもの:

class Recipe
  has_many :recipe_steps
  has_many :steps, through: :recipe_steps
end

class Step
  has_many :recipe_steps
  has_many :recipes, through: :recipe_steps
end

class RecipeStep
  belongs_to :step
  belongs_to :recipe
end

2 つのモデルのみの 2 つ目:

class Recipe
  has_and_belongs_to_many :steps
end

class Step
  has_and_belongs_to_many :recipes
end

テーブル内のデータを管理したくない場合は、2 番目のソリューションを使用しrecipe_stepsます。ただし、このテーブルに情報 (価格や数量など) を追加する場合は、最初のソリューションを使用する必要があります。

いずれの場合も、3 つのテーブルを作成する必要があります。

詳細については、http : //guides.rubyonrails.org/association_basics.htmlを参照してください。

この助けを願っています

于 2013-02-05T10:37:30.783 に答える