【问题标题】:Can not pass variables to partial (Rails5)不能将变量传递给部分(Rails5)
【发布时间】:2016-09-04 19:39:01
【问题描述】:

我遇到了这样一个问题 - 有一个部分,我不能在那里传递一个变量:

部分我有;

<%= object.title %>

我如何传递变量:

<%= render :partial => 'shared/post_preview', :locals => { :object => article } %>

我看到的错误看起来像

**undefined local variable or method `object'**

有什么想法吗?我已经尝试过一切似乎......

也试过了:

  <%= render :partial => 'shared/post_preview', :object => article %>
  <%= render 'shared/post_preview', :object => article %>
  <%= render :partial => 'shared/post_preview', :object => article %>

每次我看到同样的错误...

【问题讨论】:

    标签: variables ruby-on-rails-5 renderpartial


    【解决方案1】:

    使用这个:

    假设您已经定义了@article 实例变量。

    <%= render 'shared/post_preview', object: @article  %>
    

    这一定能解决你的问题。

    【讨论】:

    • 不,问题出在包含 Ruby 的注释代码中,而适用于 html 之类的标准注释 不适用于 Ruby 部分代码,
    【解决方案2】:

    问题出在部分文件中的注释代码中。不知何故,它被视为实际代码......

    <!--
    <div class="row">
      <div class="col-lg-6">
        <%= render :partial => 'shared/post_preview' %>
        <%= render :partial => 'shared/post_preview' %>
      </div>
      <div class="col-lg-6">
        <%= render :partial => 'shared/post_preview' %>
        <%= render :partial => 'shared/post_preview' %>
      </div>
    </div>
    -->
    

    【讨论】:

    • 当然,因为&lt;!--只是html评论,而不是ruby评论,所以无论如何都会对erb求值以生成评论的html。如果你想评论代码,试试#,比如&lt;%=# render :partial =&gt; 'shared/post_preview' %&gt;
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-16
    • 2011-06-09
    • 2015-11-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多