Ruby on rails 这句话是什么意思;获取'/患者/:id';,致:';患者#显示';,as:';患者'&引用;做
我正在学习ruby on rails,但我很难理解这一行: 摘录自: 字符串文本上下文中的单个冒号是什么意思?我认为“get”函数会解析它。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是
“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
部分只是一个别名,因此您最好