【问题标题】:Routes issue with Static Pages Controller静态页面控制器的路由问题
【发布时间】:2015-03-03 06:44:18
【问题描述】:

我有两个主页用于两种用户类型: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

【问题讨论】:

    标签: ruby-on-rails ruby routes


    【解决方案1】:

    您需要在有缺陷的link_to 的末尾添加_path

    所以改变这一行:

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

    到这里:

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

    【讨论】:

      猜你喜欢
      • 2014-04-01
      • 2014-08-24
      • 1970-01-01
      • 2015-02-25
      • 1970-01-01
      • 2011-01-31
      • 1970-01-01
      • 2011-10-24
      • 1970-01-01
      相关资源
      最近更新 更多