Ruby on Rails collection_select атрибут дисплея

Я плохо знаком с направляющими и работаю с collection_select метод.

У меня есть два поля, которые я хотел бы отобразить в своем избранном поле:

first_name и last_name

До сих пор я могу только отобразиться один или другой, не оба.

Вот код, с которым я работаю:

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

Спасибо.

11
задан New2rails 20 December 2009 в 16:38
поделиться

1 ответ

Добавить метод full_name в shopper модель:

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

И измените оператор collection_select :

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

Это потому, что большинство хелперов Rails принимают имена методов в качестве параметров, как и collection_select , который принимает параметр text_method , который является именем метода, который должен быть вызван для генерации текста самой опции, поэтому мы определяем метод full_name и передаем его имя в collection_select .

25
ответ дан 3 December 2019 в 04:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: