bigdir/app/models/bid.rb

60 lines
1.6 KiB
Ruby
Raw Normal View History

2013-08-01 10:33:49 +08:00
####by fq
class Bid < ActiveRecord::Base
#attr_accessible :author_id, :budget, :deadline, :name, :description
belongs_to :author, :class_name => 'User', :foreign_key => :author_id
has_many :biding_projects, :dependent => :destroy
has_many :projects, :through => :biding_projects
has_many :journals_for_messages, :as => :jour, :dependent => :destroy
NAME_LENGTH_LIMIT = 60
DESCRIPTION_LENGTH_LIMIT = 250
validates_length_of :name, :maximum => NAME_LENGTH_LIMIT
validates_length_of :description, :maximum => DESCRIPTION_LENGTH_LIMIT
validates_presence_of :author_id, :name, :deadline
# validates_format_of :deadline, :with =>
2013-08-01 10:33:49 +08:00
validate :validate_user
acts_as_watchable
acts_as_taggable
def add_jour(user, notes)
self.journals_for_messages << JournalsForMessage.new(:user_id => user.id, :notes => notes)
end
def self.creat_bids(budget, deadline, name, description=nil)
self.create(:author_id => User.current.id, :budget => budget,
:deadline => deadline, :name => name, :description => description, :commit => 0)
end
def update_bids(budget, deadline, name, description=nil)
if(User.current.id == self.author_id)
self.name = name
self.budget = budget
self.deadline = deadline
self.description = description
self.save
end
end
def delete_bids
unless self.nil?
if User.current.id == self.author_id
self.destroy
end
end
end
def set_commit(commit)
self.update_attribute(:commit, commit)
end
private
def validate_user
errors.add :author_id, :invalid if author.nil? || !author.active?
end
end