status messages validate on presence of message OR one or more photos. took gifs out of carrierwave's whitelist, SORRY JAMIE.
This commit is contained in:
parent
60dd2f8e60
commit
c841a47a37
3 changed files with 24 additions and 7 deletions
|
|
@ -11,7 +11,7 @@ class StatusMessage < Post
|
|||
|
||||
key :message, String
|
||||
many :photos, :class => Photo, :foreign_key => :status_message_id
|
||||
validates_presence_of :message
|
||||
validate :message_or_photos_present?
|
||||
|
||||
attr_accessible :message
|
||||
|
||||
|
|
@ -28,5 +28,14 @@ class StatusMessage < Post
|
|||
</entry>
|
||||
XML
|
||||
end
|
||||
|
||||
protected
|
||||
|
||||
def message_or_photos_present?
|
||||
unless self.message || self.photos.count > 0
|
||||
errors[:base] << 'Status message requires a message or at least one photo'
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ class ImageUploader < CarrierWave::Uploader::Base
|
|||
end
|
||||
|
||||
def extension_white_list
|
||||
%w(jpg jpeg gif png)
|
||||
%w(jpg jpeg png)
|
||||
end
|
||||
|
||||
def filename
|
||||
|
|
|
|||
|
|
@ -5,16 +5,24 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe StatusMessage do
|
||||
|
||||
before do
|
||||
@user = make_user
|
||||
@aspect = @user.aspects.create(:name => "losers")
|
||||
@user = make_user
|
||||
@aspect = @user.aspects.create(:name => "losers")
|
||||
end
|
||||
|
||||
it "should have a message" do
|
||||
it "should have either a message or at least one photo" do
|
||||
n = Factory.build(:status_message, :message => nil)
|
||||
n.valid?.should be false
|
||||
n.valid?.should be_false
|
||||
n.message = "wales"
|
||||
n.valid?.should be true
|
||||
n.valid?.should be_true
|
||||
n.message = nil
|
||||
|
||||
photo = @user.build_post(:photo, :user_file => uploaded_photo, :to => @aspect.id)
|
||||
photo.save!
|
||||
|
||||
n.photos << photo
|
||||
n.valid?.should be_true
|
||||
end
|
||||
|
||||
it 'should be postable through the user' do
|
||||
|
|
|
|||
Loading…
Reference in a new issue