def new
@cat = Category.new
respond_to do |format|
format.html
end
end
%p Add new category:
~form_for(@cat) do |f|
%div.field
~f.label :name
~f.text_field :name
%div.field
~f.label :description
~f.text_area :description
%div.field
~f.submit
resources :category
当我尝试在浏览器中加载category / new时,我得到:
undefined method `categories_path' for #<#<Class:0x10d9c9ee8>:0x10d9b0768>
Extracted source (around line #3):
1: %h1 Category#new
2: %p Add new category:
3: ~form_for(@cat) do |f|
4: %div.field
5: ~f.label :name
为什么我的表单没有显示的任何想法?
此外,在我的类别/索引页面上,我想要显示所有类别,在我获得#<Category:0x10d736b40>
的类别列表下。我可以以某种方式摆脱它吗?
答案 0 :(得分:1)
路线应为
resources :categories
不
resources :category
答案 1 :(得分:0)
评论有点长,所以我添加了以下内容作为答案。
如果您需要单一资源,则需要执行以下操作:
resource :category
哪个generate only 6 routes(无索引):
GET /category/new new
POST /category create
GET /category show
GET /category/edit edit
PUT /category update
DELETE /category destroy
但您的控制器仍然是复数,除非您执行以下操作:
resource :category, controller: :category