рельсы сгруппированные коллекции выбрать для таблицы соединений - PullRequest
0 голосов
/ 25 августа 2018

Я создаю форму для модели «Обзор» и пытаюсь сгенерировать вложенный тег выбора с профессорами и курсами, которые они преподают.

Связь между профессорами и курсами очень многим.через объединительную таблицу «Предложение».

Отзыв относится к предложению, и я хочу получить идентификаторы предложений во вложенном теге выбора.

Вот мои модели:

class Professor < ApplicationRecord
  has_many :offerings, :dependent => :destroy
  has_many :courses, :through => :offerings
  has_many :reviews, :through => :offerings
end

class Course < ApplicationRecord
  has_many :offerings, :dependent => :destroy  
  has_many :professors, :through => :offerings
end

class Offering < ApplicationRecord
  belongs_to :professor
  belongs_to :course
  has_many :reviews
end

class Review < ApplicationRecord
  belongs_to :offering
  belongs_to :user
end

А вот форма обзора:

<%= form_with(model: review, local: true) do |form| %>
<%= render 'shared/error_messages', locals: {resource: review} %>

<div class="form-group">
  <%= form.label :body %>
  <%= form.text_area :body, id: :review_body, class: 'form-control' %>
</div>

<div class="form-group">
  <%= form.label :teaching_rating %>
  <%= form.range_field :teaching_rating, in: 1..5, id: :review_teaching_rating, class: 'form-control slider' %>
</div>

<div class="form-group">
  <%= form.label :offering %>
  <%= form.grouped_collection_select :offering_id, Professor.order(:name), :courses, :name, :id, :name, class: 'form-control' %>
</div>

<div class="actions">
  <%= form.submit "Submit", class: "btn btn-primary" %>
</div>

Что я должен передать в качестве параметра option_key_method методу grouped_collection_select, чтобы правильно получить ключи предложений?

Если есть лучший подход, такой как использование двух отдельных раскрывающихся списков для профессоров и курсов (с обновлением списков курсов при выборе профессора) или использование другого collection или любого другого подхода, предложите его.Я новичок в рельсах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...