此代碼感覺不對。我試圖讓我的控制器很瘦,我覺得控制器操作中有太多的邏輯。如何重構構建活動記錄搜索哈希的控制器操作
組織這段代碼會更好嗎?
def search
where_obj = {:status => 1}
if params[:city].present?
where_obj.merge! :city => params[:city]
end
if params[:county].present?
where_obj.merge! :county => params[:county]
end
## THERE WILL BE MANY MORE IF STATEMENTS HERE DUE TO GROWING SEARCH FORM
@person = Person.where(where_obj)
end
隨着搜索表單增長這個控制器的動作也將增長。我怎樣才能保持我的控制器瘦?
這將包括值不管它們是否存在與否,這也不是什麼OP的代碼在做什麼。 – sawa
的確,我想我們以不同的方式解釋了這個問題。 –
你的第一個建議是好的。正如Sawa所說,slice將會有與OP if語句不同的行爲。 – oldergod