проблема с collection_select в rails с передачей reference_id в rails

#ruby-on-rails

#ruby-on-rails

Вопрос:

я передаю идентификатор ссылки как из таблицы требований в collection_select , но вместо того, чтобы показывать team_id как выпадающий список, я хочу указать пользователя как team_name из team таблицы, используя team_id.

также я хочу отдельную запись.

form.html.erb

 <div class="field columns large-4">
  <%= form.label :team, :class=>"" %>
  <%= form.collection_select :requirement_id, @project.requirements, :id, :team_id, prompt: true %>
</div>


  

Ответ №1:

Попробуйте следующее, используйте делегат в модели

В models/requirement.rb

 delegate :name, to: :team, prefix: true
  

или используйте пользовательский метод

 def team_name
  team ? team.name : 'No team associated'
end
  

и затем value_method в поле зрения

 <%= form.collection_select :requirement_id, @project.requirements, :id, :team_name, prompt: true %>
  

Комментарии:

1. я получаю ошибку undefined method `team_name' for #<Requirement:0x00007fe837b87910>

2. Извините, я забыл добавить , prefix: true в delegate , пожалуйста, проверьте обновленный ответ

3. все еще ошибка Requirement#team_name delegated to team.name, but team is nil

4. так team_id равно нулю? что ожидается в этом случае?

5. Не могли бы вы, пожалуйста, поделиться своим кодом ассоциации team и reference модели?