Ruby on rails 这句话是什么意思;获取'/患者/:id';,致:';患者#显示';,as:';患者'&引用;做

Ruby on rails 这句话是什么意思;获取'/患者/:id';,致:';患者#显示';,as:';患者'&引用;做,ruby-on-rails,ruby,Ruby On Rails,Ruby,我正在学习ruby on rails,但我很难理解这一行: 摘录自: 字符串文本上下文中的单个冒号是什么意思?我认为“get”函数会解析它。 “to”和“as”上下文中的单个冒号是什么?关于这件事,我一无所知 我读到单冒号表示符号,但它们总是以以下格式出现 :nospace\u varname 本质上,这是一个语法问题 非常感谢 另一种语法 get('/patients/:id', { :to => 'patients#show', :as => 'patient' }) get是

我正在学习ruby on rails,但我很难理解这一行:

摘录自:

字符串文本上下文中的单个冒号是什么意思?我认为“get”函数会解析它。
“to”和“as”上下文中的单个冒号是什么?关于这件事,我一无所知

我读到单冒号表示符号,但它们总是以以下格式出现
:nospace\u varname

本质上,这是一个语法问题

非常感谢

另一种语法

get('/patients/:id', { :to => 'patients#show', :as => 'patient' })
get是一个方法调用。第一个参数是字符串。第二个参数是一个散列

另一种语法

get('/patients/:id', { :to => 'patients#show', :as => 'patient' })

get是一个方法调用。第一个参数是字符串。第二个参数是哈希值,定义如下

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'
:将路线映射到
show
PatientsController的操作

as:'patient'
:将为您的路线创建
前缀。因此,您可以在应用程序中以
patient\u url
patient\u path
的形式轻松访问它

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

至于
to:
As:
中的冒号,它们是必需的,因为这些是在get方法中传递的选项。它们以散列形式传递,并且根据散列的Ruby语法,如果键是符号,那么
将需要将其表示为符号

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

to: 'patients#show'
:to => 'patients#show'   ## Using Hash Rocket
或者使用旧的Ruby语法:

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

以下定义

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'
:将路线映射到
show
PatientsController的操作

as:'patient'
:将为您的路线创建
前缀。因此,您可以在应用程序中以
patient\u url
patient\u path
的形式轻松访问它

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

至于
to:
As:
中的冒号,它们是必需的,因为这些是在get方法中传递的选项。它们以散列形式传递,并且根据散列的Ruby语法,如果键是符号,那么
将需要将其表示为符号

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

to: 'patients#show'
:to => 'patients#show'   ## Using Hash Rocket
或者使用旧的Ruby语法:

to: 'patients#show'
:to => 'patients#show'   ## Using Hash Rocket
字符串文本上下文中的单个冒号是什么意思?我认为“get”函数会解析它

这是用于命名查询参数的rails约定。至于在rails中路由是如何工作的,您应该阅读

“to”和“as”上下文中的单个冒号是什么?关于这件事,我一无所知

这是用于哈希的ruby语法。有关更多信息,请参阅

字符串文本上下文中的单个冒号是什么意思?我认为“get”函数会解析它

这是用于命名查询参数的rails约定。至于在rails中路由是如何工作的,您应该阅读

“to”和“as”上下文中的单个冒号是什么?关于这件事,我一无所知

这是用于哈希的ruby语法。有关更多信息,请参阅


get'/patients/:id'
中的冒号只是一个占位符,它引用了
Patient
对象的属性,该对象将放置在URL中,用于标识要请求的患者。因此,当您在患者id值为5的情况下重定向到患者路径时,您将得到以下URL:
yourpage.com/patients/5

下一部分实际上是一个
散列
to
部分表示将调用
患者
(控制器)中的
show
方法执行。
as
部分只是一个别名,因此您可以更好地从代码访问路径。如果您将其称为
'somepatient'
,则可以使用
somepatient\u路径
帮助器访问它


这两个值的冒号只是来自散列。它是(较旧的)
to=>'patient#show',as=>'patient'
的另一种语法,而在本例中,用于哈希的大括号可以省略,因为哈希是调用的最终参数,否则它可能会模棱两可。

获取“/patients/:id”
中的冒号只是一个占位符,它引用了
患者
对象的属性,该对象将放置在您的URL中,用于标识要请求的患者。因此,当您在患者id值为5的情况下重定向到患者路径时,您将得到以下URL:
yourpage.com/patients/5

下一部分实际上是一个
散列
to
部分表示将调用
患者
(控制器)中的
show
方法执行。
as
部分只是一个别名,因此您最好