我使用Ruby on Rails的3.0.9和2.3回形針。由於創業板回形針只提供兩個驗證方法(validates_attachment_presence
和validates_attachment_content_type
)我想實現我的自定義的驗證方法。如何改進和運行自定義驗證方法?
在我的模型文件,我有只是以下驗證方法
def validates_avatar(attribute_name, file)
if file.nil? # file value is nil if no file is uploaded
self.errors.add("#{attribute_name}", "You must select a file")
else
self.errors.add("#{attribute_name}", "Avatar is an invalid image format") unless MIME_TYPES.include?(file.content_type)
self.errors.add("#{attribute_name}", "Avatar is too big" if ((file.size > AVATAR_FILE_MAX_SIZE.to_i) || (file.size == nil))
end
return self.errors.empty?
end
,我從我的控制器以這種方式撥打:
if @user.validates_avatar(:avatar, params[:user][:avatar])
...
end
我想作出上述驗證運行\觸發所有其他Ruby on Rails的驗證方法以同樣的方式(如:作爲樣validates :title, :presence => true
作品)。
我如何能做到這一點,我怎麼能提高,以處理化身驗證上面的代碼?