申し訳ありません。私は多対多関係なので、2つのテーブルと結合テーブルを持っています。私には注文があり、注文には多くの商品があります。明らかに、それは製品が多くの注文になる可能性があるため、他の方法になります。私は、次のクラスを持っている:Rails 3 has_many:命名問題を通して
class Order < ActiveRecord::Base
has_many :orders_products
has_many :products, :through => :orders_products
end
class OrderProduct < ActiveRecord::Base
belongs_to :order
belongs_to :product
end
class Product < ActiveRecord::Base
has_many :orders_products
has_many :orders, :through => :orders_products
end
私は表示するページを取得していると私はものを入力することだと私は@order.products
経由で保存されたオーダーの製品と対話するために行くとき、私は取得しています次のエラー:
SQLite3::SQLException: no such table: order_products: SELECT "products".* FROM "products" INNER JOIN "order_products" ON "products".id = "order_products".product_id WHERE (("order_products".order_id = 1))
がテーブルに参加マイはorders_products
命名されていますが、order_products
て参加しようとして見ることができるように。私の限られたRails命名規則の知識では、orders_products
という名前で正しい名前をつけて、OrderProduct
という名前を付けています。私は本当にこの壁の壁に頭を打っています。
EDIT:私の注文を保存したにもかかわらず複数のチェックボックスを選択しても、orders_products
テーブルに値が保存されていないことがわかります。おそらく今のエラーと同じ理由が考えられます。
適切な 'has_many:through'関連の例については、[このトピックのガイド](http://guides.rubyonrails.org/association_basics.html#the-has_many-through-association)を参照してください。 –
ああ、私はhabtmが非難されたと思った。 – MattC
しかし、それは私の問題を修正したようだ、あなたは星を得る。また、受け入れられた答えのための5点:D – MattC