Ruby on rails 了解轨道布线,包括(=>;)和(:as)
在阅读有关rails路由的文章时,我发现路由包含=>。但我不明白这意味着什么。我还发现了一些路由示例:as。如果有人能解释一下就好了。我读过rails指南,但仍然不太清楚 请解释一下这意味着什么Ruby on rails 了解轨道布线,包括(=>;)和(:as),ruby-on-rails,ruby-on-rails-4,Ruby On Rails,Ruby On Rails 4,在阅读有关rails路由的文章时,我发现路由包含=>。但我不明白这意味着什么。我还发现了一些路由示例:as。如果有人能解释一下就好了。我读过rails指南,但仍然不太清楚 请解释一下这意味着什么 get 'customer_details' => "customers#details" 及 每次定义路线时,都必须为该路线定义控制器#操作: #config/routes.rb get :customer_details => "customers#details" get :c
get 'customer_details' => "customers#details"
及
每次定义路线时,都必须为该路线定义控制器#操作
:
#config/routes.rb
get :customer_details => "customers#details"
get :customer_details, to: "customers#details"
get :customer_details, controller: :customers, action: :details
路由模块在原生Ruby中提供URL重写。这是一种将传入请求重定向到控制器和操作的方法
以下符号是特殊的:
:controller maps to your controller name
:action maps to an action with your controllers
其他名称仅映射到参数,如:id
使用=>
对于来说只是一个简单的步骤:
当模式指向内部路由时,路由的:action
和:controller
应在选项或哈希速记中设置。示例:
match 'photos/:id' => 'photos#show', via: :get
match 'photos/:id', to: 'photos#show', via: :get
match 'photos/:id', controller: 'photos', action: 'show', via: :get
简而言之,这是将所需的“controller\action
”参数传递给Rails路由器的另一种方法
--
当然,这可以通过使用指令来否定,该指令隐式地设置控制器
和操作
:
#config/routes.rb
resources :customers, only: [], path: "" do
get :customer_details, on: :collection #-> url.com/customer_details
end
路由中间件()获取入站URL路径,并将它们与您定义的路由进行匹配——将用户发送到相应的
控制器
/操作
整个路由结构(即使使用link_to
)取决于为路由设置控制器
&操作
;尤其是对一个
将设置为:
可以显式定义路径的名称,例如:
#config/routes.rb
get "search/:query", to: "application#search", as: :app_search
。。。以上内容将创建帮助程序
更新 对于您的评论,您需要使用以下任一选项:
#config/routes.rb
get "customers/details", to: "customers#details" #-> url.com/customers/details
- or -
resources :customers do
get :details, on: :collection #-> url.com/customers/details
end
如果您定义的是单一路由,那么只有Ruby能够在不进行任何插值的情况下解释该数据时,才可以使用符号。例如,get:details
可以被视为get“details”
,但是get“customers/details”
不能被视为符号。每次定义一个时,您必须为该路线定义一个控制器#动作
:
#config/routes.rb
get :customer_details => "customers#details"
get :customer_details, to: "customers#details"
get :customer_details, controller: :customers, action: :details
路由模块在原生Ruby中提供URL重写。这是一种将传入请求重定向到控制器和操作的方法
以下符号是特殊的:
:controller maps to your controller name
:action maps to an action with your controllers
其他名称仅映射到参数,如:id
使用=>
对于来说只是一个简单的步骤:
当模式指向内部路由时,路由的:action
和:controller
应在选项或哈希速记中设置。示例:
match 'photos/:id' => 'photos#show', via: :get
match 'photos/:id', to: 'photos#show', via: :get
match 'photos/:id', controller: 'photos', action: 'show', via: :get
简而言之,这是将所需的“controller\action
”参数传递给Rails路由器的另一种方法
--
当然,这可以通过使用指令来否定,该指令隐式地设置控制器
和操作
:
#config/routes.rb
resources :customers, only: [], path: "" do
get :customer_details, on: :collection #-> url.com/customer_details
end
路由中间件()获取入站URL路径,并将它们与您定义的路由进行匹配——将用户发送到相应的控制器
/操作
整个路由结构(即使使用link_to
)取决于为路由设置控制器
&操作
;尤其是对一个
将设置为:
可以显式定义路径的名称,例如:
#config/routes.rb
get "search/:query", to: "application#search", as: :app_search
。。。以上内容将创建帮助程序
更新
对于您的评论,您需要使用以下任一选项:
#config/routes.rb
get "customers/details", to: "customers#details" #-> url.com/customers/details
- or -
resources :customers do
get :details, on: :collection #-> url.com/customers/details
end
如果您定义的是单一路由,那么只有Ruby能够在不进行任何插值的情况下解释该数据时,才可以使用符号。例如,get:details
可以被视为get“details”
,但是get“customers/details”
不能被视为符号。文档中解释了可能的重复。如果你读过这篇文章,但不理解它,那么再读一遍。文档中解释了这篇文章可能的重复。如果你读过但不明白,请再读一遍。因此,如果我想要我的url如www.example.com/customers/details”,那么路径应该是get:customers/details,to:“customers#details”“你在提供详细答案方面很有耐心:)谢谢你,伙计,你最近很火!除非有人问我这样的问题,否则我不会看Rails的源代码,所以这样做对我有很大的好处。所以,如果我想要像www.example.com/customers/details这样的url,那么路径应该是get:customers/details,到:“customers#details”“你在提供详细答案方面很有耐心:)谢谢你,伙计,你最近很火!除非有人这样问我,否则我不会看Rails的源代码,所以这样做对我有很大的好处