2013-07-22 2 views
10

У меня есть следующее в select_tag. Он работает нормально. (. Я использую select_tag, потому что для поиска не привязана к модели)Как получить несколько полей для options_from_collection_for_select

options_from_collection_for_select(@customers, :id, :first_name) 

Выходной ток HTML является:

<option value="4">Fred</option> 

Но я хочу:

<option value="4">Fred Flintstone</option> 

Я хочу показать полное имя вместо имени. Кажется, я не могу использовать оба поля «first_name» и «last_name», и не могу понять, как заставить его вызвать метод, в котором я объединяю два поля. Как я могу заставить это работать?

ответ

12

Вы можете определить на модели:

def name; "#{first_name} #{last_name}";end

и применения: Метод

options_from_collection_for_select(@customers, :id, :name)

+0

спасибо, решена та же проблема, что и у меня. –

17

добавить full_name в вашей модели:

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

и использовать это:

options_from_collection_for_select(@customers, :id, :full_name) 

Надеюсь, это поможет.

+0

Спасибо, Rails Guy. Бернардо избил вас до удара на 10 минут, поэтому я назвал его ответ «решаемым». Я ценю вашу помощь в любом случае! – circle1

+0

Я бы не ответил, если бы перезагрузил страницу и мог видеть его ответ. BTW благодарит за выживание. –

+0

@RailsGuy: спасибо, решил ту же проблему, что и у меня. :) –

Смежные вопросы