在 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] 下查看我的动物数据库中的对象?