0

我定义了一些静态页面以及一些控制器(用户和使用症状)的路由。当我导航到 localhost:3000/users/1 或 localhost:3000/users/1/usymptoms/new 时,一切都很好。一旦我完成了有关症状/新的表格的填写,我就会将 usymptoms 控制器重定向到 @users。这工作正常。

在模型文件中,关联的是用户有很多usymptoms,usymptoms属于用户。

但是,现在我的静态页面无法访问。例如,当我导航到 /learn 时,我收到以下错误:

没有路线匹配 {:action=>"new", :controller=>"usymptoms", :user_id=>nil}

我是新来的轨道。你能帮我找出错误吗?

我在下面提供了我的路由文件和“rake routes”的输出。

我的 routes.rb 文件

root to: 'static_pages#home'
match '/about',   to: 'static_pages#about'
match '/contact', to: 'static_pages#contact'
match '/learn',   to: 'static_pages#learn'

match '/signup',  to: 'users#new'
match '/signin',  to: 'sessions#new'
match '/signout', to: 'sessions#destroy', via: :delete

resources :users do
  resources :usymptoms
end


resources :sessions, only: [:new, :create, :destroy]

======

rake 路由的输出

              root        /                                            static_pages#home
             about        /about(.:format)                             static_pages#about
           contact        /contact(.:format)                           static_pages#contact
             learn        /learn(.:format)                             static_pages#learn
            signup        /signup(.:format)                            users#new
            signin        /signin(.:format)                            sessions#new
           signout DELETE /signout(.:format)                           sessions#destroy
    user_usymptoms GET    /users/:user_id/usymptoms(.:format)          usymptoms#index
                   POST   /users/:user_id/usymptoms(.:format)          usymptoms#create
 new_user_usymptom GET    /users/:user_id/usymptoms/new(.:format)      usymptoms#new
edit_user_usymptom GET    /users/:user_id/usymptoms/:id/edit(.:format) usymptoms#edit
     user_usymptom GET    /users/:user_id/usymptoms/:id(.:format)      usymptoms#show
                   PUT    /users/:user_id/usymptoms/:id(.:format)      usymptoms#update
                   DELETE /users/:user_id/usymptoms/:id(.:format)      usymptoms#destroy
             users GET    /users(.:format)                             users#index
                   POST   /users(.:format)                             users#create
          new_user GET    /users/new(.:format)                         users#new
         edit_user GET    /users/:id/edit(.:format)                    users#edit
              user GET    /users/:id(.:format)                         users#show
                   PUT    /users/:id(.:format)                         users#update
                   DELETE /users/:id(.:format)                         users#destroy
          sessions POST   /sessions(.:format)                          sessions#create
       new_session GET    /sessions/new(.:format)                      sessions#new
           session DELETE /sessions/:id(.:format)                      sessions#destroy
4

1 回答 1

0

您必须在某处具有以下链接:new_user_usymptom_path(@user),但@user由于nil某种原因,因此出现错误。

于 2013-01-16T00:25:56.277 回答