我遇到試圖保存到中間表的問題。我是Rails新手,我已經花了幾個小時的時間,但不能使它工作,也許我做錯了整個事情。任何幫助將不勝感激。 =)如何在多對多關係中插入行
該應用程序是一個簡單的書店,登錄用戶選擇書籍,然後創建訂單。顯示
此錯誤:
NameError in OrderController#create
uninitialized constant Order::Orderlist
這是我的模型:
class Book < ActiveRecord::Base
has_many :orderlists
has_many :orders, :through => :orderlists
end
class Order < ActiveRecord::Base
belongs_to :user
has_many :orderlists
has_many :books, :through => :orderlists
end
class OrderList < ActiveRecord::Base
belongs_to :book
belongs_to :order
end
這是我的命令控制器:
class OrderController < ApplicationController
def add
if session[:user]
book = Book.find(:first, :conditions => ["id = #{params[:id]}"])
if book
session[:list].push(book)
end
redirect_to :controller => "book"
else
redirect_to :controller => "user"
end
end
def create
if session[:user]
@order = Order.new
if @order.save
session[:list].each do |b|
@order.orderlists.create(:book => b) # <-- here is my prob I cant make it work
end
end
end
redirect_to :controller => "book"
end
end
日Thnx提前!
曼努埃爾
還有'has_and_belongs_to_many' Rails中是什麼樣子你真的想在這裏。 – x1a4 2010-05-28 17:07:26
這取決於 - 如果OrderList具有實際的邏輯,那麼這樣做是有意義的。我自己有一個'遊戲<->播放器<->用戶設置,完全是這樣的。 – Chowlett 2010-06-01 08:12:04