Как я могу выбрать два значения из другой таблицы, используя collection _select в форме?

#ruby-on-rails

#ruby-on-rails

Вопрос:

Я пытаюсь связать first_name и last_name из таблицы Employees в форме, чтобы пользователь мог выбрать сотрудника по его полному имени.

first_name И last_name работают сами по себе, но я хотел бы иметь оба значения.

Я пробовал разные типы скобок, но безрезультатно.

Это код, который у меня есть до сих пор:

 <div class="field">
        <%= f.label :employee, as: 'Sales Rep' %><br>
        <%= f.collection_select(:employee, @employees,:id,(:first_name, :last_name) ) %>
    </div>
  

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

1.объекты в @employees коллекции взяты из Employee ActiveRecord модели?. Если это так, вы могли бы написать метод в этой модели, например def full_name; "#{first_name}" #{last_name};end , а затем использовать его в своей форме, например: <%= f.collection_select(:employee, @employees, :id, :full_name) ) %>

2. @fanta, отлично! Если вы хотите добавить свой комментарий в качестве ответа, я выберу его в качестве ответа.

Ответ №1:

Один из способов добиться этого — добавить новый метод в вашу Employee модель, например:

 def full_name
  "#{first_name} #{last_name}"
end
  

и используйте этот метод в своей форме:

 <%= f.collection_select(:employee, @employees, :id, :full_name) %>