【问题标题】:Ruby on Rails: Concerning rendering partials inside paginated objectsRuby on Rails:关于在分页对象内渲染部分内容
【发布时间】:2012-11-16 00:11:23
【问题描述】:

我真的对渲染的分页对象的工作方式感到困惑。以此为例:

当我跑步时

<%= render :partial => 'feeds/share_item', collection: @share_items %>
<%= will_paginate @share_items %>

我可以去_share_item.html.erb,在里面我可以这样做......

<%= link_to "Delete", share_item, method: :delete, 
data: { confirm: "Are you sure you want to delete this?" }, 
class: "btn-link", title: share_item.content %>

...它会有删除链接,一切顺利。

但是,虽然还在 _share_item.html.erb 中,但如果我将其替换为...

<%= render :partial => 'shared/delete' %>

...我明白了:

undefined local variable or method 'share_item' for #&lt;#&lt;Class:0xaf0b888&gt;:0xb15cb3c&gt;

为什么?

我已经尝试解决这个问题很长一段时间了,因为我的部分表格和链接杂乱无章。我希望能够通过 another 部分呈现所述表单和链接。

感谢您的帮助。

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 object pagination partial-classes


    【解决方案1】:

    现在,变量 share_item 是空的,因为它还没有提供给部分。 你需要做这样的事情:

    <% @share_items.each do |share_item| %>
      <%= render :partial => 'shared/delete', :locals => { :share_item => share_item } %>
    <% end %>
    

    或者,稍微简洁一点

    <% @share_items.each do |share_item| %>
      <%= render 'shared/delete', share_item: share_item %>
    <% end %>
    

    或者,甚至更好:

    <%= render 'shared/delete',  collection: @share_items %>
    

    您可以找到更多信息here

    【讨论】:

    • 嘿,非常感谢。你帮助了一个'doh'时刻终于点击了! :p 欣赏它。 :)
    猜你喜欢
    • 1970-01-01
    • 2013-06-24
    • 2015-11-28
    • 2017-05-07
    • 1970-01-01
    • 1970-01-01
    • 2015-04-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多