我正在学习 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_url
或 patient_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/