未定义的局部变量帖子

时间:2015-06-15 08:11:08

标签: ruby-on-rails ruby variables undefined local

我写这段代码:

<% @user.posts.each do |post| %>
    <%= render 'post', locals: { post: post, user: @user} %>
<% end %>

然后在_post.htm.erb中编写以下代码:

<div class="post-title">
  <img src="<%= @user.avatar.url%>" class="img-rounded post-image">
  <h4 id="post-name"><%= @user.first_name + ' ' +@user.last_name %> </h4>
  <div id="post-date"><%= post.created_at.strftime('%d %b - %k:%M') %></div>
</div>
<div class="post-content">
  <p><%= post.content %></p>
</div>
<%= render 'like', post:post %>
<li  class="post-divider"></li>

当我转到此页面时,我看到如下:

undefined local variable or method `post'

2 个答案:

答案 0 :(得分:1)

From the PartialRenderer api.

  

使用本地人: param或“如果你不会成为渲染部分   使用集合或布局等任何选项,您也可以使用   渲染部分的渲染的简写默认值。“

<%= render 'post', post: post, locals: { user: @user} %>

答案 1 :(得分:1)

您需要使用partial:当您将locals传递给partial时,如下所示:

<%= render partial: 'post', locals: { post: post, user: @user} %>

我希望这会对你有所帮助。