2009-12-20 37 views
11

Tôi mới sử dụng Rails và đang làm việc với phương thức collection_select.Ruby on Rails collection_select display attribute

Tôi có hai lĩnh vực Tôi muốn hiển thị trong hộp chọn của tôi:

first_namelast_name

Cho đến nay, tôi chỉ có thể hiển thị một hay cách khác, không phải cả hai.

Dưới đây là đoạn code tôi đang làm việc với:

collection_select(:hour,:shopper_id,@shoppers,:id,"last_name") 

Cảm ơn bạn.

Trả lời

24

Thêm full_name phương pháp để shopper mô hình:

class Shopper < ActiveRecord::Base 
    #..... 
    # add this 
    def full_name 
    "#{first_name} #{last_name}" 
    end 
end 

Và thay đổi collection_select tuyên bố:

collection_select(:hour,:shopper_id,@shoppers,:id,:full_name) 

Điều này là do hầu hết Rails giúp việc mất phương tên như params, thì collection_select, trong đó có một thông số text_method, là tên của phương thức được gọi để tạo ra văn bản của chính tùy chọn, do đó chúng tôi định nghĩa phương thức full_name và chúng tôi chuyển tên của nó o collection_select.

+0

Tuyệt vời, cảm ơn bạn! – New2rails