渲染视图然后调用现有的AJAX视图

时间:2016-05-31 08:48:45

标签: ruby-on-rails ruby ajax

我不知道我将如何询问或启动我的问题,但我想要的是将我的AJAX视图重用到其他页面。我有一个现有的AJAX视图,当我从侧边栏单击一个链接时,我想渲染一个新页面,然后调用AJAX视图。

请参阅下面的示例代码。我希望你能理解我的问题。

items_controller.rb

def index
    @items = Item.all
end

others_controller.rb

def category
    @categories = Category.all
end

的观点/项目/ index.html.erb

<%= @items.count %>
<div class="ajax_form"></div>

的观点/其他的/ category.js.erb

$(".ajax_form").html("<%= escape_javascript(render 'category') %>");

的观点/其他的/ category.html.erb

<%= @categories.count %>

点击侧边栏中的链接后,我想在不重新创建的情况下调用ajax。

<a href="<%= items_path %>" >
  click_me
</a>

1 个答案:

答案 0 :(得分:1)

你可以通过发送一个额外的参数来完成这个:

<a href="<%= items_path %>?fetch_category=true" >
  click_me
</a>

更改项目控制器的索引操作

def index
    @items = Item.all
    @fetch_categories = params[:fetch_category] unless params[:fetch_category].blank?
end

最后在您的views / items / index.html.erb中,在文件底部添加这些行。

<script>
  $(function(){
     <% if @fetch_categories %>
      $.ajax({
        url: "<%= others_category_path %>",
        type: "GET",
        data: {}
      });
    <% end %>
  });
</script>