Rails 3 - 在另一个帖子的SHOW视图中无法创建新帖子

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Rails 3 - 在另一个帖子的SHOW视图中无法创建新帖子相关的知识,希望对你有一定的参考价值。

我有一个名为“Post”的模型。我想在另一篇文章的SHOW视图中使用模态表单来创建新帖子。这意味着当我在其视图中查看名为“John”的帖子时,我希望能够从那里创建一个新帖子。

我遇到的问题是新帖子的ID与我正在查看的帖子保持一致,并导致更新操作被触发而不是创建操作。有关如何处理这个的任何建议?

答案

使用Post.new建立一个新帖子并在form_for中使用它:

<%= form_for Post.new %>
  <%= render "form" %>
<% end %>

当然这意味着你需要从你的形式部分删除form_for,如果你有它,但这是一个小小的牺牲。

但是,如果您确实不想这样做,则必须将局部变量传递给表单partial以指示要显示的帖子。在show页面上你有这个:

<%= render :partial => "form", :locals => { :post => Post.new } %>

newedit观点你会这样做:

<%= render :partial => "form", :locals => { :post => @post } %>

该行稍微长一点,但这样可以让你将form_for标签保持在部分内部而不会阻塞其他三个视图。

以上是关于Rails 3 - 在另一个帖子的SHOW视图中无法创建新帖子的主要内容,如果未能解决你的问题,请参考以下文章

Rails:需要帮助在另一个模型的视图中显示一个模型的表单

Rails 在控制器动作中形成,在另一个视图中呈现?

在一个动作中渲染不同的视图

Rails 4 - 如何获得 <li> 单击以在另一个 <div> 中显示部分视图?

Rails:在嵌套视图中订购商品

如何在 Rails 视图中呈现所有评论?