2011-08-21 137 views
2

它可能有点长,但我会尽量清楚地解释我的问题。Rails路由:问题与“范围:模块”


这里是我的路线:

resources :jobs do 
    scope :module => :job_scope do 
     resource :company do 
      resource :company_page 
     end 
    end 
end 

好了,该URL编辑公司网页是: 工作/ 53-作业名称/公司/ company_page /编辑。

这是由控制器处理

JobScope::CompanyPagesController << ::CompanyPagesController

一个CompanyPage有很多containers(容器是多态)

当我尝试呈现容器,我做

<% @containers.each do |container| %> 
    <%= render container %> 
<% end %> 

通常,它会渲染,例如:

/notes/_note.html.erb 
/galleries/_gallery.html.erb 

但现在,它呈现

job_scope/notes/_note.html.erb 

我不想再重复我的观点在任何方式。

是我自己构建路径的唯一选择吗?像(帮手):

render "#{container.class.name.underscore.pluralize}/#{container.class.name.underscore}" 

谢谢!

+0

如果您使用的是rails 3.1 – rubish

+0

,您需要检查此问题railscasts.com/episodes/269-template-inheritance我知道模板继承,但我真的不知道这对我有什么帮助。容器并不嵌套在范围内,我不希望它们成为。 – Robin

+0

嗯..错过了那部分。 – rubish

回答