Я пытаюсь создать простое приложение, которое позволяет пользователю сохранить драйвер, сохранить автомобиль и объединить их (с помощью таблицы соединений).
Модель драйвера:
has_many :cars_drivers
has_many :cars, through: :cars_drivers
Модель автомобиля:
has_many :cars_drivers
has_many :drivers, through: :cars_drivers
cars_driver модель:
belongs_to :car, optional: true
belongs_to :driver, optional: true
Я хотел показать все автомобили, на которых был водитель, поэтому я добавил это на drivers_controller:
def create
@driver = Driver.new(driver_params)
respond_to do |format|
if @driver.save
CarsDriver.where(driver_id: @driver.id).destroy_all
form_cars_selected.each do |car_id|
CarsDriver.create driver_id: @driver.id, car_id: car_id
end
format.html { redirect_to @driver, notice: 'Driver was successfully created.' }
format.json { render :show, status: :created, location: @driver }
else
format.html { render :new }
format.json { render json: @driver.errors, status: :unprocessable_entity }
end
end
end
и это на виду:
<% if @driver.cars.blank? %>
Driver has no cars.
<% else %>
<%= @driver.cars.pluck(:description).to_sentence %>
<% end %>
Но это не работает. Что я мог пропустить? Есть ли более простой способ установить это базовое c отношение в RoR?