Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 在active admin中保存前预览帖子_Ruby_Ruby On Rails 4_Activeadmin - Fatal编程技术网

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对象