我已经将rails_admin安装到我的应用程序中,我想做一些相当基本的事情...我有两个模型,它们的关联出现如预期...我有一个研讨会注册模型,它属于:user.
在rails_admin中,我的研讨会注册用户被列为User#1,User#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进行查找,这似乎非常笨重……
抱歉,如果这是一个基础问题。我已经阅读了手册并查找了其他问题,但还没有完全理解。我对rails也很陌生。
谢谢。
为了使链接起作用,我必须这样做:
我根据建议添加了一个帮助方法来获取完整的名称,但仍将其保留在我的视图帮助程序中:
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
基本上,要访问任何视图助手(无论是Rails自带的还是其他的),您都必须添加indings [:view].my_tag_to_use
例如,要获取用户的rails_admin路由,可以执行以下操作:
bindings[:view].rails_admin.show_path('user', user_id)