Rails调用另一个控制器的动作

时间:2013-10-11 09:43:49

标签: ruby-on-rails

我有2个模型,帖子和评论。我想在Post show视图上创建一个按钮,将其定向到Comment new action。所以我在Post中创建了一个新动作:

  def comment
    @post = Post.find(params[:id])

    redirect_to new_comment_path
  end

我想在评论模型中保存post_id,因此我在新评论表单中创建了隐藏字段:

  <div class="field">
    <%= f.hidden_field :post_id, :value => @post.id %>
    <%= f.label :body %><br />
    <%= f.text_field :body %>
  </div>

但是出现了错误:“被称为id为nil”。

我很新,有人可以帮忙吗?或者我应该使用其他方法吗?

1 个答案:

答案 0 :(得分:1)

你错过了传递价值, 我试过这种方式并且它的工作原理,为你的例子。

<强>编辑:

redirect_to :controller=>'comments', :action=>'new_comment', :post_id=>@post.id

收到@post_id = params[:post_id]