没有路线匹配 - Rails

Kal*_*_89 5 ruby routes ruby-on-rails ruby-on-rails-3.2

在 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'
Run Code Online (Sandbox Code Playgroud)

除了我不能接触我的动物!转到 /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'
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试查看我网站上的任何其他页面时,出现以下错误: 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
Run Code Online (Sandbox Code Playgroud)

动物控制器

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

def show
    @animal = Animal.new
end
end
Run Code Online (Sandbox Code Playgroud)

而且,我跑了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
Run Code Online (Sandbox Code Playgroud)

有没有人知道如何让我的网站恢复,并允许自己在 URI /animal/[:id] 下查看动物数据库中的对象?

Pra*_*thy 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
Run Code Online (Sandbox Code Playgroud)