我有一個採用可選參數的方法。而在方法,我在這樣的可選參數做查詢:在Ruby on Rails中有沒有這樣做的乾淨方法
def filter_element(param1, *param2)
param2[0].empty? ? filtered_element = Model_class.where('city = ?', param1) : filtered_element = Model_class.where('city = ? and price <= ?', param1, param2[0].to_i)
end
這是傳遞到方法一個可選參數的例子。
我的問題是,如果我有多個可選參數,並希望根據它的存在在查詢參數中使用它,我該怎麼做?
我知道我可以使用if,elsif等。但我想用乾的方式來做到這一點。
我很確定有一種方法,但找不到與之相關的任何內容。
的方法有一個可選的參數通常是這樣做:'高清filter_element(參數1,參數2 =零)'。此外,本地變量'filtered_element'和'filtered_advertiesments'永遠不會被使用。 – Stefan
我更新了代碼。此方法返回filtered_element。據我所知,在查詢中傳遞nil不是一個好習慣,因此沒有零作爲默認值。 – tanvir2362
您不必將返回值分配給一個變量,即刪除'filtered_element ='並只寫'...? Model_class.where(...):Model_class.where(...)' – Stefan