1

我正在实现一个允许发布合并两篇文章的功能。在管理页面上,我创建了以下表单(我不确定这是否适合我所追求的),最终应该允许输入另一篇文章的 ID 并将其与当前正在查看的文章合并(应保留评论但应该只有一位作者)。

这个表单应该只有管理员可以查看,但我还没有实现这个逻辑。

<%= form_tag({:controller => "admin/content", :action => "merge"}, :method => "put", :class => 'article') do %>
  <%= label_tag(:merge_with, "Article ID") %>
  <%= text_field_tag(:merge_with) %>
  <%= submit_tag("Merge") %>
<% end %>

我还在 admin/content_controller.rb 中创建了以下方法

def merge
  @current_article = Article.find(params[:id])
  #(this variable should grab the article ID from the form) @input_article =
  @merged_article = @current_article + @input_article
  return @merged_article  
end

问题是我不确定如何获取从表单输入的文章 ID 并在我的控制器中使用它。

4

2 回答 2

1

它应该在你的参数哈希中,在 params[:merge_with]

无论您想从提交的表单中访问什么字段,它都会显示在您的 params 哈希中,键值是表单上该输入字段的 id。

编辑:

根据您那里的代码,当您调用控制器的合并方法时,您的 params[:id] 值也将为 nil,因为当您的 URI 实际需要为“admin”时,它只会是“admin/content/merge” /内容/合并/:id'。

于 2012-11-19T06:07:39.903 回答
0

由于合并文章表单位于编辑文章页面上,因此 URI 应该已经包含正在编辑的当前文章的 id。

所以你可以像这样从参数哈希中获取它params[:id]

于 2012-11-24T18:35:42.300 回答