【问题标题】:Undefined local variable post未定义的局部变量 post
【发布时间】:2015-06-15 08:11:07
【问题描述】:

我写了这段代码:

<% @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'

【问题讨论】:

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


    【解决方案1】:

    您需要使用 partial: 当您将局部变量传递给局部时,如下所示:

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

    希望对你有帮助。

    【讨论】:

    • 如果此答案对您有用,您可以将其标记为已接受,以便其他用户可以轻松找到它是正确的。
    【解决方案2】:

    From the PartialRenderer api.

    使用渲染 partial:locals: 参数或“如果你不想 使用集合或布局等任何选项,您还可以使用 渲染部分的简写默认值。"

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

    【讨论】:

    猜你喜欢
    • 2015-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-29
    • 2013-04-29
    • 2013-04-24
    • 2018-08-18
    • 1970-01-01
    相关资源
    最近更新 更多