保华的Rails学习笔记

routes.rb中namespace位置

今天做了招聘课第一周的加分题,到最后routes.rb的时候提示出错,我看提示的英文意思是没找到某些method,代码检测了几遍都没发现问题所在,于是就去找routes.rb文件,果然是这个文件写错了,有些位置写的不对(由于自己当初出错的原始记录不记得了所以没有完整的记录下来,那就把正确的贴出来自己再稍加解释这样也能记得清楚一些

 Rails.application.routes.draw do
  devise_for :users
  namespace :admin do
    resources :jobs do
      member do
        post :publish
        post :hide
      end
    end
  end
    resources :jobs

  root 'jobs#index'

  # For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html
end

在这个文件中,第一个resources :jobs do(即后边跟member do),是在admin这个do下边,所以它产生了类似edit_admin_job等,而第二个resources :jobs它没有在admin的do里边包围,所以它产生的是类似edit_job等,第二个如果写在admin的do里边就会出错
namespace(命名空间)这个位置也不能出错,当要产生admin/job或者admin/user之类时,在routes.rb中就要用到namespace。