2009-04-13 84 views
2

我正在嘗試編寫一個接受複數資源名稱並返回相應鏈接的幫助程序方法。該方法的本質是:使用Rails動態構建RESTful路線

def get_link(resource) 
    link_to "#{resource.capitalize}", resource_path 
end 

—顯然resource_path部件沒有任何作用。我想要的是能夠通過foos得到foos_pathbars得到bars_path等。我該怎麼做?我無法完成語法。

回答

7

def get_link(resource) 
    link_to "#{resource.capitalize}", send("#{resource}_path") 
end 
+0

感謝,工程巨大。出於興趣,此時發送消息的接收者是什麼? – 2009-04-13 17:22:21

2
 
def get_link(resource) 
    link_to(resource.to_s.titleize, send("#{resource}_path")) 
end 

的to_s資源調用是支持通過符號資源。 所以

 
get_link("foos") 

會工作,也

 
get_link(:foos) 
0

如果你想建立一個成員一個RESTful路線:

send("edit_#{resource}_path".to_sym, @resource)