2013-07-22 9 views
10

Mam następujące elementy w select_tag. To działa dobrze. (. Używam select_tag ponieważ jest dla wyszukiwania nie przywiązany do modelu)Jak uzyskać wiele pól dla options_from_collection_for_select

options_from_collection_for_select(@customers, :id, :first_name) 

Prąd wyjściowy HTML jest:

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

Ale chcę:

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

Chcę wyświetlić pełną nazwę zamiast tylko imienia. Nie mogę sprawić, by używał obu pól "first_name" i "last_name", ani też nie mogę wymyślić, jak uzyskać to wywołanie metody, w której łączę dwa pola. Jak mogę to uruchomić?

Odpowiedz

12

Można zdefiniować od modelu:

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

i zastosowanie: metoda

options_from_collection_for_select(@customers, :id, :name)

+0

dziękuję, rozwiązałeś ten sam problem, który miałem. –

17

add FULL_NAME w modelu:

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

i użyj tego:

options_from_collection_for_select(@customers, :id, :full_name) 

Mam nadzieję, że to pomoże.

+0

Dziękuję, Rails Guy. Bernardo pobił cię o 10 minut, więc oznaczyłem jego odpowiedź jako "rozwiązaną". Doceniam twoją pomoc w każdym przypadku! – circle1

+0

Nie odpowiedziałbym, gdybym ponownie załadował stronę i mógł zobaczyć jego odpowiedź. Przy okazji dziękuję za przegłosowanie. –

+0

@RailsGuy: dziękuję, rozwiązałeś ten sam problem, który miałem. :) –

Powiązane problemy