Minor changes on avatar cropping internals
- Avoid multiple calls to `validates` for the avatar attributes. - In a cropping process, don't check if the model inherits `User`, check if it responds to `:avatar_crop_size`.
This commit is contained in:
parent
bf6aa15512
commit
0701b70c9c
|
@ -166,9 +166,10 @@ class User < ActiveRecord::Base
|
|||
validate :owns_public_email, if: ->(user) { user.public_email_changed? }
|
||||
validates :avatar, file_size: { maximum: 200.kilobytes.to_i }
|
||||
|
||||
[:avatar_crop_x, :avatar_crop_y, :avatar_crop_size].each do |field|
|
||||
validates field, numericality: { only_integer: true }, presence: true, if: ->(user) { user.avatar_changed? }
|
||||
end
|
||||
validates :avatar_crop_x, :avatar_crop_y, :avatar_crop_size,
|
||||
numericality: { only_integer: true },
|
||||
presence: true,
|
||||
if: ->(user) { user.avatar_changed? }
|
||||
|
||||
before_validation :generate_password, on: :create
|
||||
before_validation :restricted_signup_domains, on: :create
|
||||
|
|
|
@ -11,10 +11,10 @@ class AvatarUploader < CarrierWave::Uploader::Base
|
|||
process :cropper
|
||||
|
||||
def cropper
|
||||
if model.kind_of?(User) && model.valid?
|
||||
manipulate! do |img|
|
||||
img.crop "#{model.avatar_crop_size}x#{model.avatar_crop_size}+#{model.avatar_crop_x}+#{model.avatar_crop_y}"
|
||||
end
|
||||
return unless model.respond_to?(:avatar_crop_size) && model.valid?
|
||||
|
||||
manipulate! do |img|
|
||||
img.crop "#{model.avatar_crop_size}x#{model.avatar_crop_size}+#{model.avatar_crop_x}+#{model.avatar_crop_y}"
|
||||
end
|
||||
end
|
||||
|
||||
|
|
Loading…
Reference in New Issue