我的代碼看起來是這樣的,它的工作原理:捕捉真/假結果
if Target.find_by_shrunk(params[:shrunk])
@target = Target.find_by_shrunk(params[:shrunk])
else
# do something else
end
Target::find_by_shrunk(params[:shrunk])
被調用兩次。爲了避免這種情況,我想運行一次Target.find_by_shrunk(params[:shrunk])
,捕獲true
/false
結果,然後在條件語句中使用該變量。我試過這樣做:
does_it_exist = (this_target = Target.find_by_shrunk(params[:shrunk]))
if does_it_exist
@target = this_target
else
# do something else
end
但不幸的是,這並沒有做我想做的事。
我該如何同時執行一個賦值,並以某種方式捕獲執行該賦值的真/假結果,因此我不必在連續兩次運行相同(昂貴的)代碼片段?
怪異,第二個代碼塊應該工作。你可以寫一點清潔劑,但應該工作。 – robertodecurnex 2011-06-02 19:24:25
在你的第二個代碼中,賦給'does_it_exist'是多餘的。它與'this_target'完全一樣。 – sawa 2011-06-02 19:34:37
這是完全可能的,我有正確的想法,並在其他地方使某種語法錯誤,使它打破。重寫它看起來像裏卡多帕納焦的答案後,它的工作。正如我所說的,我是一個紅寶石小白,所以我認爲完全有可能在其他地方做了一些破壞它的事情。 – Joshua 2011-06-02 19:35:48