从子目录渲染部分

时间:2014-04-14 21:37:43

标签: ruby-on-rails haml

我的观看次数目录的结构如下:

视图

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

有没有办法在不指定完整路径的情况下从 apply.html.haml 呈现部分? 我在其他地方读到render :partial => "./nav/menu",但它不适合我。

3 个答案:

答案 0 :(得分:6)

使用render方法中的完整路径。

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

应用
| views | | - »landing
| ----»main_template.html.erb
| ----»desktop
| ------»_home。 html.erb
| ---- ---- mobile
| ------»_home.html.erb

... main_templateapp/views/landing下找到调用渲染的内容,然后调用渲染看起来像这样......

render partial: 'landing/desktop/home'

render partial: 'landing/mobile/home'

答案 1 :(得分:1)

根据these github个帖子,我认为目前不可能。

答案 2 :(得分:1)

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

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

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