Rails如果current_page?动态添加元素

时间:2014-11-28 11:41:44

标签: ruby-on-rails ruby ajax ruby-on-rails-4

我遇到if current_page有问题吗?在部分。

Section.html.erb

<div class="list" %>">
    <%= render partial: 'items/item', collection: section.items, :as => :item %>    
</div>

_item.html.erb

<% if current_page?(edit_polymorphic_path(@modulable)) %>

    <span class="action">
        <%= link_to %>
        <%= link_to %>
    </span>

<% end %>

代码在新页面加载和刷新页面时工作正常,但不能使用ajax动态添加元素。

此方法是否适用于Ajax?难道我做错了什么?或者我必须使用其他方法吗?

1 个答案:

答案 0 :(得分:0)

我最终使用了不同的方法。我将一个局部变量传递给告诉,而不是让部分询问它在哪个页面。

<强> Section.html.erb

<div class="list" %>">
    <%= render partial: 'items/item', collection: section.items, :as => :item, local: { edit: true } %>    
</div>

<强> _item.html.erb

<% if defined?(edit) && edit %> 
    <span class="action">
        <%= link_to %>
        <%= link_to %>
    </span>
<% end %>

我确保将局部变量传递给update.js.erb

中的新元素

<强>项/ update.js.erb

$('.list').append(
    '<%= j (render partial: 'items/item', locals: { item: @item, edit: true }) %>'
    );

它有效,而且更明确。