2011-02-16 35 views
3

我有這樣的控制器軌道改變參數的值在控制器

def mymethod 
    @theparam => (params[:valueoftheparam]) 
    @theparam => "3" 
    callothermethodthatusetheparam 
end 

所以基本上,我有「valueoftheparam」,這是「2」。
我需要將「2」的值更改爲「3」,並且讓「參數設定爲新參數」(即「3」)
然而,「callothermethodthatusetheparam」仍然使用舊值(「2 「)。

我如何在控制器中更改此值,並讓「callothermethodthatusetheparam」使用新的參數值?

謝謝!

回答

10

你必須直接修改值,實例變量沒有指向帕拉姆,它只是克隆它的價值

params[:valueoftheparam] = 3 
+0

超,就像一個魅力 – rahardi 2011-02-16 09:52:28

1

如果你不喜歡這一點,我相信你會得到3印刷(@ PARAMS將是「3」)

def my_method 
    @param = (params[:valueoftheparam]) 
    @param = "3" 
    other_method 
end 


def other_method 
    puts @param 
end 
+0

我相信他希望越來越3時,他做`放PARAMS什麼[:valueoftheparam]`在另一種方法 – 2011-02-16 10:07:31