2011-05-22 154 views
1

的routes.rb:Rails的:使用嵌套命名路由

resources :jobs do 
    resources :activitylogs 
end 

耙路線:

... 
        POST /jobs/:job_id/activitylogs(.:format)   {:controller=>"activitylogs", :action=>"create"} 
new_job_activitylog GET /jobs/:job_id/activitylogs/new(.:format)  {:controller=>"activitylogs", :action=>"new"} 
edit_job_activitylog GET /jobs/:job_id/activitylogs/:id/edit(.:format) {:controller=>"activitylogs", :action=>"edit"} 
... 

如何使用路線new_job_activitylog

在做<%= new_job_activitylog %>給出了一個未定義的異常 - 所以使用link_to我看到的大多數例子都在使用。

回答

4

使用

<%= new_job_activitylog_path %> 

<%= new_job_activitylog_url %> 

_path返回一個相對路徑,而_url返回一個完整的URL包括http://domain.com如果你已經在你的配置設置。

0

要使用這些路由名稱,我只需要向它們追加_path

因此:new_job_activitylog未定義,但new_job_activitylog_path是視圖中將作業ID作爲參數的方法。

<%= link_to 'new', new_job_activitylog_path(:job_id => @job.id) %> 

作品!