#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
модели?