Атрибут отображения Ruby on Rails collection_select - PullRequest
11 голосов
/ 20 декабря 2009

Я новичок в Rails и работаю с методом collection_select.

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

first_name и last_name

Пока что я могу отображать только одно или другое, но не оба.

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

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

Спасибо.

1 Ответ

25 голосов
/ 20 декабря 2009

Добавить 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...