所以我在我的應用程序的通訊分發中有這個大方法。方法是更新人造絲,我需要分配一個用戶人造絲。我通過表colporteur_in_rayons
關係n:n,其具有屬性since_date
和until_date
。幫我重構這個令人討厭的Ruby if/else語句
我是一名初級程序員,我知道這段代碼非常虛擬:) 我很感謝每一個建議。
def update
rayon = Rayon.find(params[:id])
if rayon.update_attributes(params[:rayon])
if params[:user_id] != ""
unless rayon.users.empty?
unless rayon.users.last.id.eql?(params[:user_id])
rayon.colporteur_in_rayons.last.update_attributes(:until_date => Time.now)
Rayon.assign_user(rayon.id,params[:user_id])
flash[:success] = "Rayon #{rayon.name} has been succesuly assigned to #{rayon.actual_user.name}."
return redirect_to rayons_path
end
else
Rayon.assign_user(rayon.id,params[:user_id])
flash[:success] = "Rayon #{rayon.name} has been successfully assigned to #{rayon.actual_user.name}."
return redirect_to rayons_path
end
end
flash[:success] = "Rayon has been successfully updated."
return redirect_to rayons_path
else
flash[:error] = "Rayon has not been updated."
return redirect_to :back
end
end
首先修復格式 - 由4個空格縮進代碼 – horseyguy 2010-05-08 11:57:38
這似乎不是一個問題。你可以嘗試在refactormycode上發佈你的代碼。 http://refactormycode.com/ – 2010-05-08 12:06:23
banister,ruby代碼通常在兩個空格處縮進。 – vise 2010-05-08 12:08:15