2011-05-22 150 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) %> 

作品!