0

我有一个表单,它是“comments”对象的一部分,它是“post”对象的子对象,而“post”对象又是“Category”对象的子对象,我收到带有以下代码的上述错误消息(使用 simple_forms ) 有什么建议吗?

= simple_form_for([@post, @post.comments.build], html: {class: 'form-horizontal'}) do |f| 
= f.input :comment, label: "Your Reply", input_html: {class: "form-control"} 
= f.submit

路线.rb:

Rails.application.routes.draw do
devise_for :users
resources :categories do
resources :posts do
resources :comments
end
end

root 'categories#index'
end
4

2 回答 2

1

您已在 下定义了您的comments路线posts,该路线嵌套在 下categories。通过适当的缩进,错误很容易看到:

Rails.application.routes.draw do
  resources :categories do # Everything is nested under here
    resources :posts do
      resources :comments
    end
  end
end

所以你有一个categories_posts_comments_path.

如果您rake routes在控制台中运行,您应该会看到所有现有路由的输出。如果你不想要这种行为:

  resources :posts do
    resources :comments
  end

  resources :categories do # Everything is nested under here
    resources :posts
  end

但请注意,这会重复很多路由,因此您需要使用onlyorexcept参数来限制生成的路由数量。

于 2015-04-17T14:24:27.383 回答
0

原来我不得不将链接更改为:

= simple_form_for([@category, @post, @post.comments.build], html: {class: 'form-horizontal'}) do |f| 

并将路线更改为:

Rails.application.routes.draw do
devise_for :users
  resources :categories do
    resources :posts
  end
  resources :posts do
    resources :comments
  end

  root 'categories#index'
end
于 2015-04-17T14:33:47.780 回答