Ruby 为什么rake路由中缺少这些路由?
轨道3.2.13 我基本上是在使用以下屏幕广播来跟踪部署: 我有一个正在开发中的应用程序,但当使用Capistrano进行生产时,我的一个控制器的操作几乎都会产生404页 当我运行“rake routes”时,我注意到输出中缺少此控制器的操作: routes.rbRuby 为什么rake路由中缺少这些路由?,ruby,ruby-on-rails-3.2,routes,Ruby,Ruby On Rails 3.2,Routes,轨道3.2.13 我基本上是在使用以下屏幕广播来跟踪部署: 我有一个正在开发中的应用程序,但当使用Capistrano进行生产时,我的一个控制器的操作几乎都会产生404页 当我运行“rake routes”时,我注意到输出中缺少此控制器的操作: routes.rb Wagmantechnology::Application.routes.draw do root :to => 'static_pages#home' resources :users resources :s
Wagmantechnology::Application.routes.draw do
root :to => 'static_pages#home'
resources :users
resources :sessions, only: [:new, :create, :destroy]
resources :tasks
resources :assets
match '/signup', to: 'users#new'
match '/signin', to: 'sessions#new'
match '/signout', to: 'sessions#destroy', via: :delete
match 'tasks/mjhartman' => "tasks#mjhartman", :as => "tasks_mjhartman"
match 'tasks/ejmcfadden' => "tasks#ejmcfadden", :as => "tasks_ejmcfadden"
match 'tasks/ctkahler' => "tasks#ctkahler", :as => "tasks_ctkahler"
match 'tasks/gafc' => "tasks#gafc", :as => "tasks_gafc"
match 'tasks/wci' => "tasks#wci", :as => "tasks_wci"
match 'tasks/fsc' => "tasks#fsc", :as => "tasks_fsc"
match 'tasks/wagco' => "tasks#wagco", :as => "tasks_wagco"
match 'tasks/it' => "tasks#it", :as => "tasks_it"
match 'tasks/atf' => "tasks#atf", :as => "tasks_atf"
match 'tasks/hr' => "tasks#hr", :as => "tasks_hr"
match 'tasks/legal' => "tasks#legal", :as => "tasks_legal"
match 'tasks/marketing' => "tasks#marketing", :as => "tasks_marketing"
match 'tasks/user_request' => "tasks#user_request", :as => "tasks_user_request"
match 'tasks/jde' => "tasks#jde", :as => "tasks_jde"
match 'tasks/communications' => "tasks#communications", :as => "tasks_communications"
match 'tasks/hardware' => "tasks#hardware", :as => "tasks_hardware"
match 'tasks/software' => "tasks#software", :as => "tasks_software"
match 'tasks/documentation' => "tasks#documentation", :as => "tasks_documentation"
match 'tasks/security' => "tasks#security", :as => "tasks_security"
match 'tasks/billing' => "tasks#billing", :as => "tasks_billing"
match 'tasks/training' => "tasks#training", :as => "tasks_training"
match 'tasks/york_gafc' => "tasks#york_gafc", :as => "tasks_york_gafc"
match 'tasks/york_wci' => "tasks#york_wci", :as => "tasks_york_wci"
match 'tasks/berryville' => "tasks#berryville", :as => "tasks_berryville"
match 'tasks/route52' => "tasks#route52", :as => "tasks_route52"
match 'tasks/gafc_field' => "tasks#gafc_field", :as => "tasks_gafc_field"
match 'tasks/wci_field' => "tasks#wci_field", :as => "tasks_wci_field"
match 'assets/laptop' => "assets#laptop", :as => "assets_laptop"
match 'assets/desktop' => "assets#desktop", :as => "assets_desktop"
match 'assets/server' => "assets#server", :as => "assets_server"
match 'assets/network' => "assets#network", :as => "assets_network"
match 'assets/tablet' => "assets#tablet", :as => "assets_tablet"
match 'assets/cell' => "assets#cell", :as => "assets_cell"
match 'assets/data' => "assets#data", :as => "assets_data"
match 'assets/office' => "assets#office", :as => "assets_office"
match 'assets/printer' => "assets#printer", :as => "assets_printer"
match 'assets/gafc' => "assets#gafc", :as => "assets_gafc"
match 'assets/wci' => "assets#wci", :as => "assets_wci"
match 'assets/fsc' => "assets#fsc", :as => "assets_fsc"
match 'assets/wagco' => "assets#wagco", :as => "assets_wagco"
match 'assets/it' => "assets#it", :as => "assets_it"
match 'assets/atf' => "assets#atf", :as => "assets_atf"
match 'assets/hr' => "assets#hr", :as => "assets_hr"
match 'assets/legal' => "assets#legal", :as => "assets_legal"
match 'assets/marketing' => "assets#marketing", :as => "assets_marketing"
match 'assets/user_request' => "assets#user_request", :as => "assets_user_request"
match 'assets/jde' => "assets#jde", :as => "assets_jde"
match 'assets/communications' => "assets#communications", :as => "assets_communications"
match 'assets/hardware' => "assets#hardware", :as => "assets_hardware"
match 'assets/software' => "assets#software", :as => "assets_software"
match 'assets/documentation' => "assets#documentation", :as => "assets_documentation"
match 'assets/security' => "assets#security", :as => "assets_security"
match 'assets/billing' => "assets#billing", :as => "assets_billing"
match 'assets/training' => "assets#training", :as => "assets_training"
match 'assets/york_gafc' => "assets#york_gafc", :as => "assets_york_gafc"
match 'assets/york_wci' => "assets#york_wci", :as => "assets_york_wci"
match 'assets/berryville' => "assets#berryville", :as => "assets_berryville"
match 'assets/route52' => "assets#route52", :as => "assets_route52"
match 'assets/gafc_field' => "assets#gafc_field", :as => "assets_gafc_field"
match 'assets/wci_field' => "assets#wci_field", :as => "assets_wci_field"
match 'assets/inventory' => "assets#inventory", :as => "assets_inventory"
end
“rake路由”的输出:
root / static_pages#home
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
tasks GET /tasks(.:format) tasks#index
POST /tasks(.:format) tasks#create
new_task GET /tasks/new(.:format) tasks#new
edit_task GET /tasks/:id/edit(.:format) tasks#edit
task GET /tasks/:id(.:format) tasks#show
PUT /tasks/:id(.:format) tasks#update
DELETE /tasks/:id(.:format) tasks#destroy
signup /signup(.:format) users#new
signin /signin(.:format) sessions#new
signout DELETE /signout(.:format) sessions#destroy
tasks_mjhartman /tasks/mjhartman(.:format) tasks#mjhartman
tasks_ejmcfadden /tasks/ejmcfadden(.:format) tasks#ejmcfadden
tasks_ctkahler /tasks/ctkahler(.:format) tasks#ctkahler
tasks_gafc /tasks/gafc(.:format) tasks#gafc
tasks_wci /tasks/wci(.:format) tasks#wci
tasks_fsc /tasks/fsc(.:format) tasks#fsc
tasks_wagco /tasks/wagco(.:format) tasks#wagco
tasks_it /tasks/it(.:format) tasks#it
tasks_atf /tasks/atf(.:format) tasks#atf
tasks_hr /tasks/hr(.:format) tasks#hr
tasks_legal /tasks/legal(.:format) tasks#legal
tasks_marketing /tasks/marketing(.:format) tasks#marketing
tasks_user_request /tasks/user_request(.:format) tasks#user_request
tasks_jde /tasks/jde(.:format) tasks#jde
tasks_communications /tasks/communications(.:format) tasks#communications
tasks_hardware /tasks/hardware(.:format) tasks#hardware
tasks_software /tasks/software(.:format) tasks#software
tasks_documentation /tasks/documentation(.:format) tasks#documentation
tasks_security /tasks/security(.:format) tasks#security
tasks_billing /tasks/billing(.:format) tasks#billing
tasks_training /tasks/training(.:format) tasks#training
tasks_york_gafc /tasks/york_gafc(.:format) tasks#york_gafc
tasks_york_wci /tasks/york_wci(.:format) tasks#york_wci
tasks_berryville /tasks/berryville(.:format) tasks#berryville
tasks_route52 /tasks/route52(.:format) tasks#route52
tasks_gafc_field /tasks/gafc_field(.:format) tasks#gafc_field
tasks_wci_field /tasks/wci_field(.:format) tasks#wci_field
您将看到没有列出任何资源路由。为什么?奇怪的是,索引操作/资产在生产中起作用,但除此之外什么都没有。各个环节都在发展中。我做错了什么?原因应该是名称与资产管道冲突 路由中的“资产”一词过于敏感,与Rails静态资产相同。您可以验证
localhost:3000/assets/rails.png
是否可以在开发环境中工作,但不能在生产环境中工作。所有“资产”路线都已在生产模式中更改
我的建议是将路由名称空间从“资产”重命名为其他名称。但这可能涉及很多工作。我还不知道其他更简单的方法
更新
感谢@sevensacat的评论。他指出了一个更简单的方法——改变资产路径
config.assets.prefix = "/some_other_path"
参考:资产路径">http://guides.rubyonrails.org/asset_pipeline.html#changing-资产路径或者,您可以更改Rails用于服务资产的路径-谢谢。这很有道理,但我不会去想它。最后,我将资产更改为库存项目,以避免与资产管道冲突。注意:我第一次尝试更改config.assets.prefix=“/some\u other\u path”,但没有成功。看起来这个解决方案可能需要的不仅仅是那一行。@ColinKahler,谢谢你的进一步更新。我猜您的单线解决方案失败的原因是您忘记将
/assets
重命名为config.assets.prefix
中的名称。如果这是真的,不要像我刚才想的那样责备我:)无论如何,我喜欢你重命名控制器。在那里最好尽量保持惯例。