Ruby 在active admin中保存前预览帖子
我正在寻找一些关于开始使用此功能的建议;我希望用户能够预览他们的帖子保存后的样子Ruby 在active admin中保存前预览帖子,ruby,ruby-on-rails-4,activeadmin,Ruby,Ruby On Rails 4,Activeadmin,我正在寻找一些关于开始使用此功能的建议;我希望用户能够预览他们的帖子保存后的样子 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.inpu
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
因此,查看活动管理文档,我可以看到您可以添加自定义操作项
action_item :preview, only: :new, name: 'preview_button' do
# do stuff here
end
我还可以以集合动作的形式添加自定义控制器动作,该动作还将为我添加路由
collection_action :preview, method: :post do
@post = Post.new(params[:post])
end
因此,现在我有了一个自定义操作预览
和一个可以将数据传递给方法的按钮(我现在已经硬编码了它,因为不确定如何从表单外部获取数据)
这就是我到目前为止所做的:
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调用创建一个名为permited_params的方法。重写创建或更新操作时应使用此方法:
现在,我只需要获取表单外部的表单数据,并将其通过我的link_传递到,然后如果我返回表单,就能够用相同的数据填充表单
理想情况下,我希望在f.actions中有预览按钮,这样我就可以访问@post对象