0

您好,我正在尝试创建一个带有简单预订系统的餐厅网站,用于在轨道上使用 ruby​​ 的桌子(V.:3.2.13)。我有 3 张桌子:客户(姓名,电子邮件),预订(table_id,customer_id),桌子(座位,区域)。

我已经配置了如下模型:

class Reservation < ActiveRecord::Base
  belongs_to :customer
  belongs_to :table
end

class Customer < ActiveRecord::Base
  has_many :reservations
  has_many :tables, :through => :reservations
end

class Table < ActiveRecord::Base
  has_many :reservations
  has_many :customers, :through => :reservations
end

我使用 form_tag 进行了搜索以选择表格。如果客户找到了合适的餐桌,他可以点击“预订此餐桌”链接,然后他会被定向到 new_customer_path 以应用他的姓名和电子邮件地址。我现在的问题是预订。如何动态/自动添加所选表和新创建的客户的预订?

我在 CustomerController 中尝试过这样的事情,但它不起作用:

def create
  @customer = Customer.new(params[:customer])
  table = Table.find(params[:table_id])
  @reservation = @customer.Reservation.build(:table => table)
  @reservation.save
end

你能告诉我如何添加预订吗?

先感谢您。

4

2 回答 2

1

你可以做

@reservation = @customer.reservations.build
# set table:
@reservation.table = table
# save record:
@reservation.save
于 2013-08-12T12:02:51.743 回答
0

@reservation = @customer.reservations.build(table: table).save!

谢谢

于 2013-08-12T12:20:29.783 回答