Хорошие имена в связанных объектах в Active Admin - PullRequest
0 голосов
/ 09 февраля 2012

Я использую Ruby on Rails с Active Admin, и у меня есть одна модель, где есть отношение к пользовательской модели. Все работает, только вместо электронной почты пользователя или чего-то другого, он показывает объект пользователя в поле выбора при создании нового объекта. Например:

<select id="playground_open_time_user_id" name="playground_open_time[user_id]">
  <option value=""></option>
  <option value="15">#<User:0x7fb553945628></option>
  <option value="44">#<User:0x7fb553943508></option>
  <option value="51">#<User:0x7fb553942ef0></option>
</select>

Как и где я могу изменить, чтобы вместо него отображались адрес электронной почты или имя + фамилия?

Ответы [ 3 ]

0 голосов
/ 09 февраля 2012

Вы пытались добавить метод "имя" к вашей модели, например:

class User
  def name
    "#{first_name} #{last_name}"
  end
end
0 голосов
/ 25 июля 2013

Легко сделать, это определить метод to_s для вашего объекта модели следующим образом:

def to_s
self.first_name
end

Всякий раз, когда ActiveAdmin встречает ваш объект и ему нужно его отобразить, он будет использовать значение, возвращаемое методом. Это во многом похоже на метод toString (), который используют многие фреймворки Java.

0 голосов
/ 09 февраля 2012

Вы можете добавить метод к вашей модели, например, pretty_string, или добавить помощника вида, похожего на pretty_user_string(user).Затем вам придется обновить свое представление, чтобы вызвать хороший метод / функцию.

...