0

类别控制器:

  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 

当我尝试在浏览器中加载类别/新时,我得到:

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>。我能以某种方式摆脱它吗?

4

2 回答 2

1

路线应该是

resources :categories

不是

resources :category
于 2013-04-06T12:05:31.480 回答
0

评论有点长,所以我添加了以下内容作为答案。

如果你想要一个单一的资源,你需要做:

resource :category

这将只生成 6 条路线(无索引):

GET     /category/new   new
POST    /category       create
GET     /category       show
GET     /category/edit  edit
PUT     /category       update
DELETE  /category       destroy

但是您的控制器仍然是复数,除非您执行以下操作:

resource :category, controller: :category
于 2013-04-06T12:23:32.483 回答