2014-01-20 43 views
0

我想跟隨Ruby中的一些腳手架代碼。產生這樣的腳手架:通過腳手架在Rails中自動生成的代碼

rails generate scaffold Person name:string 

現在,當我查看生成的代碼中的一些xxx.html.erb我看到edit_person_path引用()如在show.html的情況下,下面的例子.erb。有人可以直接告訴我edit_person_path()是什麼以及它是如何存在的?我玩了一下,打印出來自edit_person_path()的輸出,並看到它返回/ people/id/edit(其中id =實際整數)。從這裏推導出我認爲edit_person_path(「x」)返回/ people/x/edit,但需要了解更多這種黑魔法。

<p id="notice"><%= notice %></p> 

<p> 
    <strong>Name:</strong> 
    <%= @person.name %> 
</p> 

<%= link_to 'Edit', edit_person_path(@person) %> | 
<%= link_to 'Back', people_path %> 

回答

2

這裏完全是白色的魔法。 Rails使用這些助手來自動生成路徑和URL:http://guides.rubyonrails.org/routing.html#path-and-url-helpers

例如,如果您生成支架的人,你將自動擁有下列助手:

people_path() # /people, because rails uses 'person'.pluralize 
new_person_path() # /person/new 
edit_person_path(@person) # /person/:id/edit 
person_path(@person) # /person/:id