如何在活动管理中访问表单对象参数

问题描述 投票:0回答:1

我希望这实际上是可能的,但我似乎无法访问我的表单参数以使用我的自定义操作发送。

我的目标是让用户填写他们的表单,单击“预览”按钮,该按钮将向他们显示他们的帖子的外观,我已经创建了很好的视图,只是传递参数是一个问题。

这是我目前的形式

# 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 do
    f.action :submit
    f.action :cancel
    f.action :reset
    li do
      link_to 'Preview', preview_my_admin_panel_posts_path(post: { title: "test", comments: 'comments', category_id: '1' }) # Hardcoded for now
    end
   end
 end
end

# Collection Action to handle object
collection_action :preview, method: :get do
  @post = Post.new(permitted_params[:post])
end

因此,按照一切方式(硬编码),参数都会在我的预览视图中传递并输出,但是一旦我尝试访问表单对象/参数,就不会传递任何内容:

# Console Output
1 - link_to 'Preview', preview_my_admin_panel_posts_path(post: { title: f.object.title, comments: f.object.comments, category_id: f.object.category_id})
#<Post:0x007f8bbe1fc4c0 id: nil, title: "", comments: "", category_id: nil, slug: nil, published: 0, created_at: nil, updated_at: nil>
2 - link_to 'Preview', preview_my_admin_panel_posts_path(post: { title: f.title, comments: f.comments, category_id: f.category_id })
# Console Output
#<Post:0x007f8bbe1fc4c0 id: nil, title: nil, comments: nil, category_id: nil, slug: nil, published: 0, created_at: nil, updated_at: nil>
3 - link_to 'Preview', preview_my_admin_panel_posts_path(@post)
# Console Output
#<Post:0x007f8bbe1fc4c0 id: nil, title: nil, comments: nil, category_id: nil, slug: nil, published: 0, created_at: nil, updated_at: nil>

不知道还能去哪里,

f.object.param
看起来很接近,但穿过空字符串?

我可以考虑哪些替代解决方案?

更新

当将参数输出到控制台时,我得到这个返回

{"action"=>"preview", "controller"=>"my_admin_panel/posts"}
ruby activeadmin formtastic
1个回答
0
投票

您要创建帖子吗?当您加载此页面时,字段没有任何值,因此链接不会加载任何参数(您可以检查预览链接上的元素并看到该链接没有任何参数)。

一种方法是在链接路由到控制器之前使用 JavaScript 捕获值。

© www.soinside.com 2019 - 2024. All rights reserved.