1

クラスにhas_many:through関係を作成しようとしていますが、関連データの保存と取得を実際に実装する方法について混乱しています。

関連付けの:throughであるRecipeクラス、Ingredientクラス、およびAmountクラスがあります。現在の私のクラスは次のとおりです。

#models/recipe.rb
class Recipe < ActiveRecord::Base
  has_many :amounts
  has_many :ingredients, :through => :amounts
end

#models/ingredient.rb
class Ingredient < ActiveRecord::Base
  has_many :amounts
  has_many :recipes, :through => :amounts
end

#models/amounts.rb
class Amounts < ActiveRecord::Base
  belongs_to :recipes
  belongs_to :ingredients
end

また、レシピを作成するための基本的なフォームの要点へのリンクは次のとおりです:https ://gist.github.com/2820455

そして、作成コード自体の要点: https ://gist.github.com/2820294

フォームを送信すると、次のエラーが発生します。

uninitialized constant Recipe::Amount

そしてこのアプリのトレース:

app/controllers/recipes_controller.rb:57:in 'block in create' app/controllers/recipes_controller.rb:56:in 'create'

私はRubyonRailsに非常に慣れていないので、この関係を実装し、Amounts値をテーブルに挿入するのは頭がおかしくなります...!

4

1 に答える 1

0

所属する_toは単数である必要があります。amount.rbでは次のように変更してください:-

models / amount.rb

class Amounts < ActiveRecord::Base
  belongs_to :recipe
  belongs_to :ingredient
end
于 2012-05-28T19:17:46.770 に答える