Я установил rails_admin в свое приложение, и я хочу сделать что-то довольно простое... У меня две модели, и их ассоциация подходит, как и ожидалось... У меня есть модель регистрации семинара, которая принадлежит_to: user.
В rails_admin перечислены мои пользователи регистрации в качестве пользователя # 1, пользователя # 1 и т.д.
Я бы хотел, чтобы это было имя пользователя. Что мне удалось сделать, так это:
config.model SeminarRegistration do
label "Seminar Signups"
# Found associations:
configure :user, :belongs_to_association
configure :seminar_time, :belongs_to_association # # Found columns:
configure :id, :integer
configure :user_id, :integer # Hidden
configure :seminar_time_id, :integer # Hidden
configure :created_at, :datetime
configure :updated_at, :datetime # # Sections:
list do
field :user do
pretty_value do
user = User.find(bindings[:object].user_id.to_s)
user.first_name + " " + user.last_name
end
end
field :seminar_time
end
export do; end
show do; end
edit do; end
create do; end
update do; end
end
Раздел "pretty_value" дает мне текст моего имени пользователя и фамилии... но имеет две проблемы:
1) Это уже не ссылка. Если я оставлю значение по умолчанию (User # 1, User # 2 и т.д.), Он предоставит ссылку этому пользователю. Как мне вернуть эту ссылку? Как rails_admin определяет его пути?
2) Кажется ужасно неуклюжим, чтобы искать вверх по id прямо здесь, в моей форме...
Извините, если это основной вопрос. Я прочитал руководство и поднял другие вопросы, но он еще не совсем "щелкнул" для меня. Я также довольно новичок в рельсах.
Спасибо.
Мне пришлось сделать это, чтобы заставить его работать со ссылкой:
Я добавил вспомогательный метод для полного имени, как было предложено, но сохранил его в моих помощниках:
module ApplicationHelper
def full_name(user_id)
user = User.find(user_id)
user.first_name + " " + user.last_name
end
end
Затем я изменил раздел "pretty_value" следующим образом:
pretty_value do
user_id = bindings[:object].user_id
full_name = bindings[:view].full_name(user_id)
bindings[:view].link_to "#{full_name}", bindings[:view].rails_admin.show_path('user', user_id)
end
В принципе, чтобы получить доступ к любому помощнику вида (рельсы сделаны или иначе), вы должны добавить указатели [: view].my_tag_to_use
Чтобы получить маршрут rails_admin для пользователя, например, вы можете:
bindings[:view].rails_admin.show_path('user', user_id)