Rah*_*arg 13 ruby-on-rails ruby-on-rails-3 rails-admin
我已经为我的网站的管理界面设置了rails_admin.
对于其中一个模型,我想显示一个额外的列.
说我的模型中有姓名,电话,电子邮件,图片网址,排名等属性(比如学生).然后我必须显示列:名称| 排名| 预览(附加栏目)
在预览列中,我想根据每个"学生"的属性(电子邮件,图像,网址等)显示一些渲染的html.
我找到了包含部分编辑/更新/创建的方式,以根据我们的部分提供字段/表单.但是包含partial的相同实现在list/show中失败了.
那么有什么方法可以添加部分显示渲染内容,在列表/显示视图中的模型...?
编辑:添加了代码
config.model Utility do
list do
field :code
field :priority
field :name
field :url
field :phone
field :logo
field :content
sort_by :priority
items_per_page 100
end
end
Run Code Online (Sandbox Code Playgroud)
这会在rails_admin中显示以下列
代码| 优先| 名称| 网址| 电话| 标志| 内容
我想要的是 Code | 优先| 预习
在预览列中,我想将html呈现内容显示为:
blah.html(仅用于例如html,例如,我想以某种方式呈现它在一个页面中显示,因此它也适用于管理员视图)
<div class="blah">
<%=util.name%> <%=util.phone%> <%=util.logo%> #usage with proper divs/tags/rendering
</div >
Run Code Online (Sandbox Code Playgroud)
Ben*_* B. 23
config.model Utility do
configure :preview do
pretty_value do
util = bindings[:object]
%{<div class="blah">
#{util.name} #{util.phone} #{util.logo}
</div >}
end
children_fields [:name, :phone, :logo] # will be used for searching/filtering, first field will be used for sorting
read_only true # won't be editable in forms (alternatively, hide it in edit section)
end
list do
field :code
field :priority
field :preview
end
show do
field :code
field :priority
field :preview
end
# other sections will show all fields
end
Run Code Online (Sandbox Code Playgroud)
抽象:
显示/列表不使用部分输出.最后的重点是pretty_value
.
Rails管理员调用这些"虚拟"字段类型.最简单的方法是在模型上创建一个方法,然后在列表/ show中引用它:
class ModelName < ActiveRecord::Base
def invite_link
%{<a href="http://site.com/#{self.uid}">invite link</a>}.html_safe
end
rails_admin do
configure :invite_link do
visible false # so it's not on new/edit
end
list do
field :name
field :invite_link
end
show do
field :name
field :invite_link
end
end
end
Run Code Online (Sandbox Code Playgroud)