型号:
class Booking < ActiveRecord::Base
has_and_belongs_to_many :spaces
end
class Space < ActiveRecord::Base
has_and_belongs_to_many :bookings
end
由于我不需要任何其他信息,只是一种关系,因此我使用了许多habtm。我们的想法是为预订对象添加空格,但是我无法将@space或@spaces数组添加到预订创建操作中。下面的代码工作正常,从数据库中抓取所有空格并添加关系。显然,我并不想要它们,我只需要实例(@space或@spaces取决于用户所在的位置)。
def create
@booking = Booking.new(booking_params)
@booking.spaces = Space.all
@booking.user_id = current_or_guest_user.id
@booking.save
respond_with(@booking)
end
我是否需要通过控制器或表单执行此操作?我宁愿通过控制器做这样的事情,这样我就可以更新关系并在任何时候向数组中添加更多的@spaces。
@booking.spaces << @space
and
@booking.spaces << @spaces
但是,这些变量在预订创建操作中不可用。预订是从Spaces show动作创建的,这是表单的形式。
有什么想法吗?我有可能首先做一些愚蠢的事......