Нашли или выдавили из себя код, который нельзя назвать нормальным,
на который без улыбки не взглянешь?
Не торопитесь его удалять или рефакторить, — запостите его на
говнокод.ру, посмеёмся вместе!
def self.process(site, object = nil, &block)
dont_unblock = false
block_res = true
site.lock!
if site.assets_blocked?
dont_unblock = true
raise Asset::BlockedException
end
site.assets_blocked = true
site.save!
block_res = yield if block_given?
return false unless block_res
return object.save if object
true
ensure
site.update_attribute(:assets_blocked, false) unless dont_unblock
end
# во всех местах, где с ассетами делалось хоть что-нибудь, копипастился такой кусок:
result =
begin
@asset = @site.assets.new
@asset.process do
@asset.attached = params[:file]
@asset.folder_path = params[:path]
end
rescue Asset::BlockedException
render json: { errors: [I18n.t("layout.assets.errors.assets_blocked")] } and return
end
Комментарии (2) RSS