routes.rb文件中`self`的值是多少?

Sag*_*dya 2 ruby ruby-on-rails

需要一些帮助来理解以下routes.rb文件:

Rails.application.routes.draw do
  get 'help' => 'static_pages#help'
end
Run Code Online (Sandbox Code Playgroud)

从我对Ruby这一行的理解:

get 'help' => 'static_pages#help'
Run Code Online (Sandbox Code Playgroud)

是相同的:

self.get('help' => 'static_pages#help')
Run Code Online (Sandbox Code Playgroud)

那么在这种情况下的价值是self什么?

And*_*eko 6

selfin routes.rb是一个实例ActionDispatch::Routing::Mapper.

你可以简单地检查它

raise self.inspect
Run Code Online (Sandbox Code Playgroud)

在你的routes.rb和运行中

rails server
Run Code Online (Sandbox Code Playgroud)

访问localhost,你会看到这样的东西:

#<ActionDispatch::Routing::Mapper:0x000000062598a0 @set=#<ActionDispatch::Routing::RouteSet:0x00000003d59500>,@scope=#<ActionDispatch::Routing::Mapper::Scope:0x00000006259850 @hash={:path_names=>{:new=>"new", :edit=>"edit"}}, @parent={}, @scope_level=nil>, @concerns={}, @nesting=[]>
Run Code Online (Sandbox Code Playgroud)