rails从child create重定向到child show

时间:2017-06-08 11:41:52

标签: ruby-on-rails ruby-on-rails-5

我确信有一个解决方案,但我没有看到它。我想在创建后重定向到我孩子的节目页面。

我刚刚在我的子控制器中创建了父记录的子记录,如下所示:

def create
   @article = Article.find(params[:article_id])
   @comment = article.comments.create(comment_params)
   redirect_to "/articles/#{@article.id}/comments/#{@comment.id}"
end

...
private

def comment_params
    params.require(:comment).permit(:commenter, :body)

我想做redirect_to @comment

之类的事情

有办法做到这一点吗?一旦我做了上述操作,我也从脚手架创建中获得了这个预烘焙代码的错误:

<%= link_to 'Edit', edit_comment_path(@comment) %>

我觉得我的路线可能有问题,或者我没有正确引用我孩子的路径。

routes.rb中:

resources :articles do
  resources :comments
end
  1. 如何在我的控制器的创建方法中正确地重定向到我孩子的“show”
  2. 为什么我的编辑路径会在我的子视图中被破坏?
  3. 感谢

1 个答案:

答案 0 :(得分:2)

尝试以下代码:

控制器

def create
   @article = Article.find(params[:article_id])
   @comment = article.comments.create(comment_params)
   redirect_to article_comment_path(@article,@comment)
end

视图

<%= link_to 'Edit', edit_article_comment_path(@article, @comment) %>

路由

resources :articles do
  resources :comments
end