2014-04-14 47 views
2

我的意见目录的结构如下:渲染从子目录局部

视图

  • 由域
    • domain1的
      • user_mailer文件
        • NAV
          • _menu.html.haml
        • apply.html.haml
        • welcome.html.haml

有没有办法来渲染部分from apply.html.haml没有指定完整路径? 我读过别的地方我可以做render :partial => "./nav/menu"但它不适合我。

+0

你有没有试过_render:partial =>“nav/menu”_没有圆点和第一个斜杠? – robzdc

+1

是的,我也试过,并没有奏效。经过四周找不到答案,我只是采取了完整的路径。 – Rafa

回答

4

在渲染方法中使用完整路径。

例如,如果你有以下目录结构...

应用
| |登录|注册
| - 登陆| | | ------»_home.html.erb

...和main_template它调用render是app/views/landing下找到,然后调用渲染是这样的...

render partial: 'landing/desktop/home'

render partial: 'landing/mobile/home'

1

您可以在控制器中使用append_view_path。我这样使用它:

class DemoController < SiteController 
. 
. 
    before_filter do 
     append_view_path Rails.root.join("domain/domain1/user_mailer") 
    end 
... 

当然这只有在这些目录中有不同的视图/部分名称时才有效。