2016-05-31 114 views
0

我不知道我要怎麼問或開始我的問題,但我想要的是重用我的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> 
+0

你想要點擊click_me鏈接請求發送到物品控制器的索引動作和ajax請求發送到其他控制器的類別動作? – Prity

+0

@Prity ..是的..我想同時調用..或者如果不行的話我可以把類的方法放到item方法中,但是我仍然想把ajax顯示到'items/index.html.erb的視圖' –

回答

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 

最後,在你的意見/項目/指標。 html.erb在文件底部添加這些行。

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

謝謝你^ _^.. –