ruby-on-rails - 行 "get '/patients/:id', 到 : 'patients#show' , 是什么 : 'patient' "do?

标签 ruby-on-rails ruby

我正在学习 ruby​​ on rails,但我无法理解这条线:

摘自 http://guides.rubyonrails.org/routing.html :

get '/patients/:id', to: 'patients#show', as: 'patient'

字符串文字上下文中的单个冒号是什么意思?我认为“get”函数解析了它。
'to' 和 'as' 上下文中的单个冒号怎么样?对此,我一无所知。

我读到单冒号指的是一个符号,但它们总是以以下格式格式出现
:nospace_varname

本质上,这是一道语法题。

非常感谢!

最佳答案

定义如下

get '/patients/:id', to: 'patients#show', as: 'patient'

生成一条路线:

 patient GET    /patients/:id(.:format)              patients#show

在哪里

get : 指HTTP方法

/patients/:id :将是匹配的路径,如 /patients/1:id 只是一个占位符。

to: 'patients#show' :将路由映射到 PatientsController

show 操作

as: 'patient' :将为您的路线创建一个 prefix。因此,您可以在应用程序中以 patient_urlpatient_path 的形式轻松访问它。

当您以 patient_path(@patient) 访问此路径时,其中 @patient 是 id=1 的患者记录实例。然后生成的路线将是 /patients/1:id 将映射到 @patient.id

to:as: 中的冒号而言,它们是必需的,因为这些是在 get 方法中传递的选项。它们作为散列传递,根据散列的 Ruby 语法,如果键是 symbol,则需要 : 将其表示为 symbol .

它可以以任何一种方式使用,新的 Ruby(Ruby 1.9 及更高版本)语法如下:

to: 'patients#show'

或者使用旧的 Ruby 语法:

:to => 'patients#show'   ## Using Hash Rocket

关于ruby-on-rails - 行 "get '/patients/:id', 到 : 'patients#show' , 是什么 : 'patient' "do?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22942273/

相关文章:

ruby-on-rails - 如何为 Ruby on Rails 中的可选多态关系的调用提供虚拟值?

ruby-on-rails - 在 heroku 上激活 resque worker

ruby - Mechanize 前/后连接 Hook

ruby-on-rails - 工厂女孩和回形针附件

ruby-on-rails - 类型错误 : superclass mismatch for class Task

ruby-on-rails - 未定义的局部变量或方法 `root_path'

ruby-on-rails - 在模型或 Controller 中获取消化的 asset_path

javascript - Rails应用程序不会使用 “embedd”附加youtube链接

ruby-on-rails - 自动创建类的包含模块

ruby - 如何从 Ruby 调用 shell 命令