5

在 Rails 中设置我的第二个项目(首先没有遵循教程)并且遇到了我无法用我的路线解决的问题。使用我的 routes.rb 文件,一切都按照我的意愿工作,例如:

AnimalApp::Application.routes.draw do

    root to: 'static_pages#index'
        # resources :animal
    match '/help', to: 'static_pages#help'
    match '/about', to: 'static_pages#about'
    match '/contact', to: 'static_pages#contact'
    match '/league', to: 'static_pages#league'
    match '/animal', to: 'animal#new'

除了我无法访问我的动物!转到 /animal/1 会引发错误: No route matches [GET] "/animal/1"

为了解决这个问题,我改变了我的路线如下:

    AnimalApp::Application.routes.draw do

    root to: 'static_pages#index'
        resources :animal
    match '/help', to: 'static_pages#help'
    match '/about', to: 'static_pages#about'
    match '/contact', to: 'static_pages#contact'
    match '/league', to: 'static_pages#league'
    #match '/animal', to: 'animal#new'

但是,当我尝试查看我网站上的任何其他页面时,我收到以下错误: No route matches {:action=>"show", :controller=>"animal"}

有关更多信息,请参见我的控制器下方:(静态页面)

class StaticPagesController < ApplicationController
  def help
  end

  def league
  end

  def contact
  end

  def about
  end

  def index
  end

  def show
  end
end

动物控制器

class AnimalController < ApplicationController
    def new
    @animal = Animal.new
    end

def show
    @animal = Animal.new
end
end

而且,我已经跑了,rake routes我得到了:

animal_index GET    /animal(.:format)          animal#index
            POST    /animal(.:format)          animal#create
  new_animal GET    /animal/new(.:format)      animal#new
 edit_animal GET    /animal/:id/edit(.:format) animal#edit
      animal GET    /animal/:id(.:format)      animal#show
             PUT    /animal/:id(.:format)      animal#update
          DELETE    /animal/:id(.:format)      animal#destroy
            root    /                          static_pages#index
            help    /help(.:format)            static_pages#help
           about    /about(.:format)           static_pages#about
         contact    /contact(.:format)         static_pages#contact
          league    /league(.:format)          static_pages#league
                    /animal(.:format)          animal#new

有谁知道我怎样才能让我的网站恢复原状并让我自己在 URI /animal/[:id] 下查看我的动物数据库中的对象?

4

1 回答 1

5

让它resources :animals代替resources :animal

rake routes应显示以下输出:

    animals GET    /animals(.:format)          animals#index
            POST   /animals(.:format)          animals#create
 new_animal GET    /animals/new(.:format)      animals#new
edit_animal GET    /animals/:id/edit(.:format) animals#edit
     animal GET    /animals/:id(.:format)      animals#show
            PUT    /animals/:id(.:format)      animals#update
            DELETE /animals/:id(.:format)      animals#destroy
于 2012-10-20T17:12:05.003 回答