【问题标题】:How to render partial view?如何渲染局部视图?
【发布时间】:2015-11-10 19:26:45
【问题描述】:

我有以下:

/controllers/test_controller.rb

/views/test/index.html.erb

/views/test/_partial.html.erb

我想在索引视图中呈现部分。我正在这样做:

index.html.erb

<h1>Test#index</h1>
<%= render "_partial" %>

_partial.html.erb

<p>This is partial content</p>

当我转到 localhost:3000/test/index 时,我收到此错误:

ActionView::MissingTemplate in Test#index
Missing partial /__partial with {:locale=>[:en], :formats=>[:html], :variants=>[], :handlers=>[:erb, :builder, :raw, :ruby, :coffee, :jbuilder]}.
Extracted source (around line #2):

1 <h1>Test#index</h1>
2 <%= render "_partial" %>

知道我做错了什么吗?

【问题讨论】:

  • 尝试跟随
  • @Shani:谢谢。这样可行。所以文件还是应该有下划线但是引用的时候不要用下划线?
  • 正确的部分用一个前导下划线命名,以将它们与常规视图区分开来,即使它们在没有下划线的情况下被引用。即使您从另一个文件夹中提取部分内容也是如此:edgeguides.rubyonrails.org/…

标签: ruby-on-rails partial-views


【解决方案1】:

这个问题已经得到解答,但是当局部视图与当前视图位于同一目录中时,您可以只渲染不带下划线的局部视图。但是,如果您想从另一个控制器中提取部分内容,则需要退后一步并使用更完整的路径,例如 "users/partial"。

【讨论】:

    【解决方案2】:

    一切都取决于你的部分在哪里。如果您在 layouts 文件夹中有部分 _partial,您只需像这样调用部分 &lt;%= render "partial" %&gt;。

    Rails 知道开头带有下划线的文件是部分文件。因此,当您渲染部分时,您不必使用下划线。

    请记住,Rails 是约定优于配置。

    【讨论】:

      【解决方案3】:

      你可以试试这个

      <% @users.each do |user| %>
              <%= render 'erb_partials/post', user: user %>
          <% end %>
      

      【讨论】:

        猜你喜欢
        • 2016-02-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-02-05
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多