2015-03-03 76 views
0

我有兩個用戶類型的主頁:home.html.erb(用戶)和shop_home.html.erb(用於商店)。當我在登錄「用戶」時單擊站點標題中的主鏈接時,它會通過靜態頁面控制器中的home方法將用戶路由到home.html.erb。儘管如此,我仍然無法路由到shop_user.html.erb。 shop_home路線不起作用。靜態頁面的路由問題控制器

shop_header.erb

<% if shop_logged_in? %> 
    <li id="blacklink"><%= link_to "Home", shop_home %></li> 
    <li id="blacklink"><%= link_to "Drivers", users_path %></li> 
    <li id="blacklink"><%= link_to "Log out", shop_logout_path, method: "delete" %></li> 
<% end %> 

點擊「主頁」鏈接給我undefined local variable or method 'shop_home' 我有什麼做的就是在主頁的鏈接路由到shop_home.html.erb

的routes.rb

Rails.application.routes.draw do 

    get 'shop_sessions/new' 

    get 'shops/new' 

    get 'cars/new' 

    get 'sessions/new' 

    get 'users/new' 

    root    'static_pages#home' 
    get 'shophome' => 'static_pages#shop_home', as:"shop_home" 
    get 'shop', to: 'static_pages#shop_home', as: 'shop_root' 
    get 'shops', to: 'shops#index', as: 'shop_index' 
    get 'help' => 'static_pages#help' 
    get 'about' => 'static_pages#about' 
    get 'contact' => 'static_pages#contact' 
    get 'signup' => 'users#new' 
    get 'shopsignup' => 'shops#new' 
    get 'login' => 'sessions#new' 
    post 'login' => 'sessions#create' 
    get 'shoplogin' => 'shop_sessions#new', as: 'shop_login' 
    post 'shoplogin' => 'shop_sessions#create' 
    delete 'logout' => 'sessions#destroy' 
    delete 'shoplogout' => 'shop_sessions#destroy', as: 'shop_logout' 

    resources :users 
    resources :shops 
    resources :cars, only: [:create, :destroy, :edit] 
end 

staticpagescontroller.rb

class StaticPagesController < ApplicationController 

    def home 
    if logged_in? 
     @car = current_user.cars.build 
     @feed_items = current_user.feed.paginate(page: params[:page]) 
    end 
    end 

    def shop_home 
    @shop = current_shop 
    end 
end 

回答

0

您需要添加_path到您的缺陷link_to結束。

因此改變這一行:

<li id="blacklink"><%= link_to "Home", shop_home %></li> 

要這樣:

<li id="blacklink"><%= link_to "Home", shop_home_path %></li> 
+0

哇哦不能相信我錯過了。謝謝! – 2015-03-03 07:00:24