0

遵循 RoR入门教程后,我添加了另一个模型:

$ rails g model Category name:string wdate:date

我将这一行添加resources :category到我的 routes.rb 文件中,并复制并粘贴了初始的 Posts 控制器,将名称从 Post 更改为 Category 并将 Posts 更改为 Categories。

我对索引、表单、新建和编辑视图做了类似的事情。

现在,localhost:3000/category给我一个空的类别列表,并/category/new给我一个输入表单。但是,在提交后,我得到

路由错误

没有路线匹配 [POST] "/categories"

尝试运行 rake 路线以获取有关可用路线的更多信息

按照建议运行rake routes表明我有:

POST   /category(.:format)          category#create

为什么表单提交到错误的地址?我输入术语“类别”的唯一区域是#index 处理程序中的变量名,所以我不明白为什么表单目标是/categories. 我是否必须明确设置/category创建路径?

4

1 回答 1

0

resources :category里面的线config/routes.rb应该是resources :categories.

当你在做的时候resources,你应该总是使用资源的复数名称,这样 Rails 会自动为资源的成员路由助手使用单数,例如edit_category_path(category).

然后它将在集合的路由中使用复数形式,例如form_for. 因为对象是新的,所以表单将向/categories表单数据发出 POST 请求。

于 2012-06-12T05:45:32.330 回答