связывание моделей ruby ​​на рельсах - PullRequest
0 голосов
/ 06 декабря 2009

У меня есть 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 ]

2 голосов
/ 06 декабря 2009

добавить:

@car.seller = @seller после сборки машины. Тогда @car.save

Build не знает о @seller, вам нужно сообщить машине, что у него есть продавец. Он действительно знает, что есть пользователь, потому что вы создали автомобиль от пользователя.

Вы также можете сделать:

@car = Car.new
@car.seller = @seller
@car.user = @user
1 голос
/ 06 декабря 2009

Если вы гарантируете, что поля в вашей форме, которые выдают параметры [: car], включают в себя поле для идентификатора продавца, вам вообще не нужно менять контроллер.

Например:

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

<% end %>
0 голосов
/ 06 декабря 2009
@car.seller = @seller
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...