在轨道上链接模型ruby

时间:2009-12-05 21:38:11

标签: ruby-on-rails

我有3个型号:用户,卖家和汽车

我希望用户能够从卖家中选择一辆车,并将其添加到用户的购物清单中。

我的车控制器中有这样的东西:

 @user = User.find(params[:user])
  @seller = Seller.find(params[:seller])

  @car = @user.cars.build(params[:car])

但是卖家没有被添加。我该怎么办呢?

是的,我有这个:

class Car < ActiveRecord::Base
  belongs_to :user
  belongs_to :seller
end

在我的汽车模型中

3 个答案:

答案 0 :(得分:2)

添加:

制造汽车后

@car.seller = @seller。然后@car.save

Build不了解@seller,你需要告诉汽车它有卖家。它只是真的知道有一个用户,因为你是从用户创建了汽车。

你也可以这样做:

@car = Car.new
@car.seller = @seller
@car.user = @user

答案 1 :(得分:1)

如果您确保表单中生成参数[:car]的字段包含卖家ID的字段,则根本不需要更改控制器。

例如:

<% fields_for :car, @seller.cars.build do |car_form| %>
 <%= car_form.hidden_field :seller_id
 ... more fields for car form ...

<% end %>

答案 2 :(得分:0)

@car.seller = @seller