真的希望这实际上是可行的,但我似乎无法访问我的表单参数来发送我的自定义操作
我的目标是让用户填写表格,点击预览按钮,向他们展示他们的帖子会是什么样子,我创建的视图很好,只是传递参数是一个问题。< / p>
这是我目前的表格
# 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
所以对于一切(硬编码),params在我的预览视图中传递并输出,但是当我尝试访问form对象/ params时,没有任何东西被传递
# 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似乎很接近但是通过空字符串?有没有人这样做过?
如果有人有替代解决方案,我很乐意听到它。
由于
更新
将params输出到控制台时,我会返回
{"action"=>"preview", "controller"=>"my_admin_panel/posts"}
答案 0 :(得分:0)
你想创建一个帖子吗?当您加载此页面时,字段没有任何值,因此链接将不会加载任何参数(您可以检查预览链接上的元素并查看该链接没有任何参数)。
一种方法是在链接在控制器中路由之前使用JavaScript来捕获值。