2013-07-22 26 views
10

Aşağıdakileri select_tag dosyasında bulabilirsiniz. İyi çalışıyor.options_from_collection_for_select için birden çok alan nasıl alınır

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

Ama benim istediğim: (. Bir modele bağlı olmayan bir arama için çünkü select_tag kullanıyorum)

options_from_collection_for_select(@customers, :id, :first_name) 

geçerli HTML çıkışı

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

Tam adı yerine sadece ilk adı görüntülemek istiyorum. "First_name" ve "last_name" alanlarının her ikisini de kullanacak gibi görünmüyor ve iki alanı birleştirdiğim bir yöntemi çağırması için bunu nasıl anlayabiliyorum. Bunu nasıl çalıştırabilirim?

cevap

12

Sen modeline tanımlayabilirsiniz: Modelinizdeki

options_from_collection_for_select(@customers, :id, :name)

+0

Teşekkürler, ben de aynı sorunu çözdüm. –

17

eklenti yöntemi TAM_ISIM:

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

ve kullanım

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

ve bunu kullanın:

options_from_collection_for_select(@customers, :id, :full_name) 

Bu yardımcı olacaktır umarım.

+0

Teşekkür ederim, Rails Guy. Bernardo seni 10 dakika yumrukla dövdü, ben de onun cevabını "çözülmüş" olarak işaretledim. Her durumda yardımın için minnettarım! – circle1

+0

Sayfayı yeniden yüklediysem ve cevabını görebiliyorsam, cevap vermem. Btw yükseltme için teşekkürler. –

+0

@RailsGuy: Teşekkürler, aynı sorunu yaşadım. :) –

İlgili konular