2013-10-16 106 views
0

另一個動作實例變量比方說,我有一個觀點home.html.erb及以下控制器:訪問從視圖

class StaticController < ApplicationController 
    def home 
    @people = Person.all 
    end 

    def filter 
    @people = .... 
    end 

    def contact 
    end 
end 

現在在頁面加載時我可以很容易地訪問這些人@people。問題是當我想過濾那些我稱之爲從我的home view的ajax動作並觸發filter動作並設置新的@people變量的人時。

在我的視野內,仍然存在着舊的價值觀,而不是新的價值觀。當我改變的變量名,並設置它是這樣的:

def filter 
    @people2 = .... 
    end 

,當我試圖通過@people2遍歷我查看裏面我收到一條錯誤消息。它說@people2爲空。所以,我的問題是如何從我的視圖訪問該變量?

謝謝。

+0

我是否正確理解您 - 您正在尋找通過AJAX重新加載人員列表? –

+0

是的,我不知道任何其他方式。 – Cristiano

回答

0

爲什麼要在查詢字符串中使用參數進行過濾?

def home 
    if params[:gender] 
    @people = Person.where(gender: params[:gender]) 
    else 
    @people = People.all 
    end 
end 

如果你去/home.html?gender=maleparams[:gender]將返回"male"和@people將只包含男性。

+0

實例變量設置相同,所有約會都在那裏。主頁是根視圖,所以也許這可能是一個問題。在我的路線中,我將匹配'/約會'設置爲:'static#home',通過:'get'。所以,我的根就像這樣設置在'路由'中:root'static#home' – Cristiano