Мои столы:Rails collection_select с Join Table
Person belongs_to и номер has_many Person
Мой collection_select
<%= collection_select(:inspection, :person_id, Person.involving(current_user), :id, :room_id) %>
Если я не ошибаюсь, в HTML это будет представлен в виде следующего кода:
<select name="post[person_id]">
<option value="<%= person.id %>"><%= person.room_id %></option>
<% end %>
</select>
Я хочу сказать, что когда пользователь отправляет форму, мне нужно отправить значение идентификатора человека, но мне нужно показать в выпадающем списке имя комнаты (в моем примере, где я показываю комнату.ид) :
<select name="post[person_id]">
<option value="<%= person.id %>"><%= room.name %></option>
<% end %>
</select>
Как я могу это сделать? Как я вижу, мне кажется, что мне нужно соединить персональный стол с столиком комнаты? Если это решение, как я могу это сделать?
Мой человек модель:
scope :involving, -> (user) do
where("persons.id = ?", user.id)
end
Мой взгляд
<%= form_for @inspection do |f| %>
<label>Select</label>
<%= collection_select(:inspection, :person_id, Person.involving(current_user), :id, :room.id) %>
<%= f.submit "Send" %>
Я попытался сделать это ясно, как я мог.
В вашей коллекции выберите, что вы вызываете ': room.id' как метод, который будет заполнять имя ваших параметров. Вы пытались изменить это на ': room.name'? – jaydel
на самом деле есть: room_id .. Я обновил его. –