Rails:如何使用嵌套资源处理belongs_to

时间:2013-06-26 21:47:48

标签: ruby-on-rails ruby-on-rails-3

如果我有一个嵌套资源,如下所示:

resources :posts do
    resources :comments
end

我访问/ posts / 1 / comments / new,在评论模型上设置post_id的最佳方法是什么?

1 个答案:

答案 0 :(得分:2)

使用form_for

<%= form_for [@post, @comment] do |f| %>

或者,您可以使用longform:

<%= form_for @comment, url: post_comments_path(@post) do |f| %>

它会为您正确设置网址。

您的控制器操作应如下所示:

def new
  @post = Post.find(params[:post_id])
  @comment = @post.comments.build
end

def create
  @post = Post.find(params[:post_id])
  @comment = @post.comments.build(params[:comment])
  if @comment.save
  ...
end