1

我只是想尋求一些澄清來訪問其類中的實例變量(道歉,如果這是真的基本)。訪問實例變量

我的例子是,我有一個規則控制器,並在其中我有很多動作,但在paticular我有一個索引和SHOW行動

def index 
@q = Recipe.search(params[:q]) 
@q.build_condition 
end 

基礎上通過的PARAMS @q搜索我的食譜模型我的搜索形式

我想表現出不同的頁面上的結果來啓動(稍後會查看AJAX選項),所以在我的表演動作我能做到這一點

def show 
@searchresults = @q.result(:distinct => true) 
end 

我認爲這是有效的,但如果沒有,我會在某個地方出錯。任何人都可以提出建議或提供建設性意見嗎?

謝謝

回答

1

命名爲@bar不,你不能使用實例變量喜歡這樣,因爲他們都有不同的動作,並會得到所要求的不同要求。

但是下面的工作

def index 
    @q = Recipe.search(params[:q]) 
    @q.build_condition 
    show 
end 

def show 
    #Following line will work as we are calling this method in index 
    #and so we can use instance variable of index method in the show methos 
    @searchresults = @q.result(:distinct => true) 
end 
+0

謝謝你的回答,因此,如果例如我放在結果的行動搜尋結果中的實例變量我只想叫我index..think結果你茅塞頓開在這裏 – Richlewis

3

對象或類應該有以下幾種方法:

  • @foo.instance_variables - 這將列出實例變量的名字@foo
  • @foo.instance_variable_get - 這將獲得價值一個實例變量爲@foo
    • ex:@foo.instance_variable_get("@bar") - 這將得到instan的值CE變量@foo