我正在寻找关于开始使用此功能的一些指示;我希望用户能够预览他们的帖子在保存时的样子
ActiveAdmin.register Post do
permit_params :comments, :title, :category_id, :slug, :published
# Create Blog Post
form do |f|
inputs 'Blog' do
f.semantic_errors
f.input :title
f.input :category_id, as: :select, collection: Category.all
f.input :comments, as: :text, input_html: { rows: 10, cols: 10 }
f.input :published, as: :boolean
end
inputs 'Submit' do
f.actions
end
end
end
因此,查看有效的管理员文档,我可以看到您可以添加custom action items
action_item :preview, only: :new, name: 'preview_button' do
# do stuff here
end
我还可以以collection_action的形式添加自定义控制器操作,这也会为我添加路径
collection_action :preview, method: :post do
@post = Post.new(params[:post])
end
所以现在我有一个自定义操作preview
和一个可以将数据传递给方法的按钮(我现在已经硬编码了,因为不确定如何从表单外部获取数据)。
这是我到目前为止所做的:
action_item :preview, only: :new, name: 'preview_button' do
link_to 'Preview', preview_my_admin_panel_posts_path(post: { title: 'Test Title', comments: 'test comments', category_id: '1' })
end
# Add controller action
collection_action :preview, method: :get do
@post = Post.new(params[:post_params])
end
我的视图被渲染但没有输出,我该如何显示数据?
这是正确的方法吗?
现在可以用
显示硬编码数据collection_action :preview, method: :get do
@post = Post.new(permitted_params[:post])
end
区别在于活跃的管理员文档
permit_params调用创建一个名为allowed_params的方法。在覆盖创建或更新操作时应使用此方法:
现在我只需要获取表单外部的表单数据并将其传递给我的link_to,然后如果我返回表单,就可以使用相同的数据填充表单。
理想情况下,我想在f.actions中设置预览按钮,然后我可以访问@post对象。