rails routes(路由)的目的是匹配URL和控制器之间的联系。同时也会产生一些路径,可以在视图中直接使用。
1.1 连接URL到代码
当你的rails接受到以下的request请求
GET /patients/17
他会询问rails的routes来匹配到对应的控制器。如果第一次的routes是
这样的。
match "/patients/:id" => "patients#show"
他将会调用 patients控制器的show方法,同时参数中包含{ :id => “17” }。
1.2 从代码中产生路径和URL
如果你的代码如下
@patient = Patient.find(17)
<%= link_to "Patient Record", patient_path(@patient) %>
rails的routes会产生/patients/17。这将会使你的view伸缩性更加好,而且会让你的代码更容易
理解。你会注意到id在routes不需要特别指定。