我有以下内容:
/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" %>
知道我做错了吗?
答案 0 :(得分:2)
这个问题已经得到解答,但是当partial与当前视图位于同一目录中时,您可以只渲染部分没有下划线。但是如果你想从另一个控制器中提取部分,你需要退一步并使用更完整的路径,比如"users/partial"
。
答案 1 :(得分:1)
所有取决于您的部分位置。如果您在布局文件夹中有部分_partial
,则只需调用<%= render "partial" %>
这样的部分。
Rails知道开头带有下划线的文件是不完整的。因此,当您渲染部分图像时,不必使用下划线。
请记住,Rails是配置之上的约定。
答案 2 :(得分:0)
您可以尝试
<% @users.each do |user| %>
<%= render 'erb_partials/post', user: user %>
<% end %>