多対多の関連付け (イベントには多くの製品があり、製品には多くのイベントがあります) を持つ 2 つのモデルがあり、1 つの製品をイベントに追加しようとしています。システムが処理する必要がある多くのタイプの製品を実装するために、単一のテーブル継承を使用しました。これが、以下のエラーでLighting
製品ではなくモデル名になっている理由です。製品をイベントに追加するためにコントローラーに次のメソッドがありますが、次のエラーが発生します。
NoMethodError in AddeventController#add
undefined method `each' for #<Lighting:0x007fd4bc798c70>
app/controllers/addevent_controller.rb:5:in `add'
そして私の行動は次のようになります:
def add
@event = current_event
product = Product.find(params[:id])
if @event.update_attribute(:products, product) #This is line 5
format.html {redirect_to @event, notice: "Product added to event"}
end
end
Current_event は、セッションからイベントの ID を取得する単なるメソッドです。
それで、何がうまくいかないのですか?