2016-03-05 66 views
0

執行我的最新加入我的導軌應用(使用bcrypt進行身份驗證)後,我意識到我的導軌應用無法再路由到static_pages控制器中的任何鏈接。有沒有解決的辦法?這是我的路線實施問題嗎?用戶在導軌上登錄後無法路由

以前:本地主機:3000 /家

登錄後:本地主機:3000 /用戶/ 2

錯誤,我得到的,當我點擊在家中或登錄後任何其他鏈接:

GET本地主機:3000 /用戶/家庭404(未找到)

我的路線:

Rails.application.routes.draw do 
     resources :user 
     root 'static_pages#home' 
     match '/alex' , to: 'static_pages#alex', via: 'get' 
     match '/help', to: 'static_pages#help', via: 'get' 
     match '/about', to: 'static_pages#about', via: 'get' 
     match '/home', to:'static_pages#home', via: 'get' 
     match '/contact', to:'static_pages#contact', via:'get' 
     match 'users/show' , to: 'users#show', via: 'get' 
     get 'login' => 'sessions#new' 
     post 'login' => 'sessions#create' 
     delete 'logout' => 'sessions#destroy' 
     get '/signup' => 'users#new' 
     resources :sessions, only: [:new, :create, :destroy] 
end 

我的頭文件位於佈局:

<div id = "navbar"> 
    <ul id = "menu-nav"> 
    <li class = "nav-item"> <a href= "home" >  <i class="fa fa-home">  </i> Home </a> </li> 
    <li class = "nav-item"> <a href= "help"> <i class="fa fa-music"></i> Music </a> </li> 
    <li class = "nav-item"> <a href= "about" > <i class="fa fa-thumbs-up"></i> Artist Discovery </a> </li> 
    <li class = "nav-item"> <a href= "#"> <i class="fa fa-paper-plane"> </i> News </a> </li> 
    <li class = "nav-item"> <a href= "#"> <i class="fa fa-heart"></i> Alex!  </a> </li> 
    <% if @users == nil %> 
    <li class = "nav-item"> <a href= "signup"> <i class="fa fa-heart"></i> Sign Up </a> </li> 
    <li class = "nav-item"> <a href= "login"> <i class="fa fa-heart"></i> Login </a> </li> 
    <% end %> 
     </ul> 
    </div> 

耙路線:

Prefix Verb URI Pattern    Controller#Action 
     root GET /      static_pages#home 
     alex GET /alex(.:format)   static_pages#alex 
     help GET /help(.:format)   static_pages#help 
     about GET /about(.:format)   static_pages#about 
     home GET /home(.:format)   static_pages#home 
     contact GET /contact(.:format)  static_pages#contact 
     users_show GET /users/show(.:format)  users#show 
     login GET /login(.:format)   sessions#new 
      POST /login(.:format)   sessions#create 
    logout DELETE /logout(.:format)   sessions#destroy 
    signup GET /signup(.:format)   users#new 
     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 
      PATCH /users/:id(.:format)  users#update 
      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 
+0

您可以複製日誌並粘貼到此處。 – Bijendra

+0

問題可能在您的鏈接中。請在您的鏈接實施的地方發佈代碼。 –

+0

無法加載資源:服務器響應狀態爲404(未找到) http:// localhost:3000/users/Program.m4a加載資源失敗:服務器響應狀態爲404(未找到) – acampbe222

回答

0

嘗試用這種替代你的 '家' 鏈接:

<%= link_to "Home", home_url %> 
+0

這似乎工作。你能解釋一下嗎?謝謝! – acampbe222

+0

link_to是創建鏈接的幫助器。 'home_url'引用你在耙路中看到的'home'前綴。我強烈建議您閱讀以下內容:http://guides.rubyonrails.org/routing.html – akz92

+0

有關link_to助手的更多信息:http://api.rubyonrails.org/classes/ActionView/Helpers/UrlHelper.html#method -i-的link_to – akz92

0

使用斜槓之前的網址上一個標籤

<a href='/home' > Home </a> 

或使用Rails的選項,所有這些應該工作...

<%= link_to 'Home', root_path %> 
<%= link_to 'Home', home_path %> 
<%= link_to 'Home', home_url %> 

一兩件事。

如果您使用的是較新版本的Rails < 4,那麼建議使用得到而不是匹配。

get "home" => 'static_page#home'