Добавление дополнительного значения столбца в список в RailsAdmin
-
26-10-2019 - |
Вопрос
У меня есть RailsAdmin, работающий для моего приложения Rails 3, которое имеет две модели - Sale и Merchandise.Между ними существует тесная взаимосвязь.В RailsAdmin при добавлении или редактировании распродажи список доступных товаров отображается обычным образом.Однако отображается только столбец "название" товара.У меня есть еще один столбец, значение которого необходимо включить, чтобы список имел какой-либо смысл.Как мне добавить это в интерфейс RailsAdmin?
Я понимаю , что железнодорожный администратор Документы допустим, что объявления полей имеют доступ к хэшу привязок, который содержит текущий экземпляр записи, но я не могу найти никаких примеров того, как это реализовать.Спасибо за любую помощь.
Решение
Я бы предложил вам использовать для этого метод метки пользовательского объекта.Ваша конфигурация RailsAdmin может выглядеть следующим образом:
config.model Merchandise do
object_label_method
:custom_label
end
end
И ваша модель ActiveRecord будет содержать метод для меток экземпляров:
class Merchandise < ActieRecord::Base
def custom_label
"#{self.label} #{self.another_column} #{self.another_column2}"
end
end
Это не отвечает на ваш вопрос о доступных переменных привязок, но я надеюсь, что это решает основной вопрос.Если вы хотите посмотреть, какие переменные доступны в пользовательском представлении поля, вы можете просмотреть представления в ~/rails_admin/app/views/rails_admin/main/ .Быстрый grep показывает, что привязки [: object] доступны в этих представлениях, но IIRC, есть несколько других переменных привязок, которые доступны.
Другие советы
У вас есть в наличии по крайней мере следующие объекты:
bindings[:object] # the actual object
bindings[:view] # you can access view helpers here
bindings[:controller] # you can access the controller
Что вам нужно в этом случае, так это bindings[:object]