如何重構Ruby on Rails代碼的這一點?重構一系列值的條件
def select_plan
unless params[:plan] && (params[:plan] == '1' || params[:plan] == '2' || params[:plan] == '3' || params[:plan] == '4' || params[:plan] == '5' || params[:plan] == '6' || params[:plan] == '7' || params[:plan] == '8')
flash[:notice] = "Please select a membership plan to register."
redirect_to root_url
end
end
有效計劃編號從何而來?他們來自數據庫嗎?有什麼常數可以定義它們嗎?他們是否在整個代碼中都灑滿了神奇的數字? –
我問,因爲擁有「6是一個有效的計劃」,事實上只坐在一個控制器方法或幾個不同的地方是你需要重構的東西,而不是你在'select_plan'中執行的繁瑣實現。修復潛在的問題,'select_plan'會將自身清理爲副作用。 –
@ muistooshort - 請原諒我的經驗水平。有效的計劃編號出現在數據庫中。我對你要說的事感興趣。雖然我不完全確定你的意思。 –