我有一个很长的代码。例如:
<% Post.limit(10).offset(10).order(id: :desc).each do |post| %>
######## FROM HERE ###########
<% unless post.image.blank? %>
<% img = post.image.split(' ') %>
<% if post.post_type == 1 %>
<div class="post_type1">
<h1>
<a href="post/<%= post.slug %>">
<%= post.title %>
</a>
</h1>
</div>
<% end %>
<% end %>
####### TO HERE #########
<% end %>
所以,我想把这部分(从这里起来&lt; - &gt;到这里)作为一个模板。所以我写了第一行,后来render or something else, I do not know
和显示所有页面的最后一行。你能帮帮我吗?
答案 0 :(得分:1)
只需将其放入文件中(我们称之为_post.html.erb
)并将其包含在内:
<% Post.limit(10).offset(10).order(id: :desc).each do |post| %>
<%= render partial: 'post', locals: { post: post } %>
<% end %>
请注意使用locals: { post: post }
将循环中的变量post
传递给部分。另一件需要注意的事情是,您的文件名以下划线(_
)开头,当您渲染部分时,该下划线将被忽略。
详细了解Rails guide中的部分内容。