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
|
key :message, String
|
||||||
many :photos, :class => Photo, :foreign_key => :status_message_id
|
many :photos, :class => Photo, :foreign_key => :status_message_id
|
||||||
validates_presence_of :message
|
validate :message_or_photos_present?
|
||||||
|
|
||||||
attr_accessible :message
|
attr_accessible :message
|
||||||
|
|
||||||
|
|
@ -28,5 +28,14 @@ class StatusMessage < Post
|
||||||
</entry>
|
</entry>
|
||||||
XML
|
XML
|
||||||
end
|
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
|
end
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@ class ImageUploader < CarrierWave::Uploader::Base
|
||||||
end
|
end
|
||||||
|
|
||||||
def extension_white_list
|
def extension_white_list
|
||||||
%w(jpg jpeg gif png)
|
%w(jpg jpeg png)
|
||||||
end
|
end
|
||||||
|
|
||||||
def filename
|
def filename
|
||||||
|
|
|
||||||
|
|
@ -5,16 +5,24 @@
|
||||||
require 'spec_helper'
|
require 'spec_helper'
|
||||||
|
|
||||||
describe StatusMessage do
|
describe StatusMessage do
|
||||||
|
|
||||||
before do
|
before do
|
||||||
@user = make_user
|
@user = make_user
|
||||||
@aspect = @user.aspects.create(:name => "losers")
|
@aspect = @user.aspects.create(:name => "losers")
|
||||||
end
|
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 = Factory.build(:status_message, :message => nil)
|
||||||
n.valid?.should be false
|
n.valid?.should be_false
|
||||||
n.message = "wales"
|
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
|
end
|
||||||
|
|
||||||
it 'should be postable through the user' do
|
it 'should be postable through the user' do
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue