保存在活动管理员

时间:2015-11-26 12:02:47

标签: 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.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_pa​​rams的方法。在覆盖创建或更新操作时应使用此方法:

现在我只需要获取表单外部的表单数据并将其传递给我的link_to,然后如果我返回表单,就可以使用相同的数据填充表单。

理想情况下,我想在f.actions中设置预览按钮,然后我可以访问@post对象。

0 个答案:

没有答案