我必须为自定义操作添加视图,该视图是成员操作,并且希望在其上显示关联记录。有没有办法添加自定义视图,而不是只在管理员的视图文件夹中添加html.erb?
我不想添加或创建html文件,而是使用活动的管理员帮助程序。
答案 0 :(得分:3)
成员操作除了控制器操作之外什么都没有,这意味着你可以在其中执行相同的操作。
你可以使用想法:
render text: "Hello world!"
或者如果你想要一个复杂的标记:
message1 = "Hello"
@message2 = "world!"
view = Arbre::Context.new(message: message, self) do
h1 do
span message
span @message
end
end
render body: view.to_html # or .to_s
答案 1 :(得分:0)
您可以将以下代码用于 rails 4.1 :
的渲染htmlrender html: '<html><body>Some body text</body></html>'.html_safe ## Add html_safe
但是,如果您使用 rails 4.2 ,那么您可以使用以下内容:
render text: '<html><body>Some body text</body></html>'
我认为以下answer对您的问题非常有用。
答案 2 :(得分:0)
最后在admin / user / messages.html.erb中的html.erb文件中添加以下内容
<% view = Arbre::Context.new({messages: @messages, user: @user}, self) do
panel "Sent Messages" do
paginated_collection(messages, download_links: false) do
table_for collection do
column :id
column :content
end
end
end
end
%>
<%= view.to_s %>
答案 3 :(得分:0)
根据您的命名空间(在我的情况下,ActiveAdmin位于/admin
),您可以像处理其他应用程序一样创建文件夹app/views/admin
。
例如,如果您有资源User
和操作apply_discount
ActiveAdmin.register User do
member_action :apply_discount, method: [:get, :put] do
if request.get?
render :apply_discount
else
# TODO ...
end
end
end
您可以将ARBRE视图文件放入app/views/admin/users/apply_discount.html.arb
- &gt;注意扩展名是ARB,而不是ERB - 尽管ERB也应该工作according to the docs