2014-10-23 11:30:34 +08:00
|
|
|
## fq
|
|
|
|
class BidingProject < ActiveRecord::Base
|
|
|
|
attr_accessible :bid_id, :project_id, :user_id, :description,:reward
|
|
|
|
|
|
|
|
belongs_to :bid
|
2017-03-07 10:58:50 +08:00
|
|
|
# belongs_to :project
|
2014-10-23 11:30:34 +08:00
|
|
|
belongs_to :user
|
|
|
|
|
|
|
|
DESCRIPTION_LENGTH_LIMIT = 500
|
|
|
|
validates :description, length: {maximum: DESCRIPTION_LENGTH_LIMIT}
|
|
|
|
validates :user_id, presence: true
|
|
|
|
validates :bid_id, presence: true, :uniqueness => { :scope => :project_id}
|
|
|
|
validates :project_id, presence: true
|
|
|
|
validate :validate_user
|
|
|
|
validate :validate_bid
|
|
|
|
validate :validate_project
|
|
|
|
|
|
|
|
def self.cerate_bidding(bid_id, project_id, description = nil)
|
|
|
|
self.create(:user_id => User.current.id, :bid_id => bid_id,
|
|
|
|
:project_id => project_id, :description => description)
|
|
|
|
end
|
|
|
|
|
|
|
|
# used to update the reward ,the value varies from 0,1,2,3,4,5
|
|
|
|
# added by william
|
|
|
|
def update_reward(which)
|
|
|
|
self.update_attribute(:reward,which)
|
|
|
|
end
|
|
|
|
|
|
|
|
# return the reward,the value is a type of string
|
|
|
|
# added by william
|
|
|
|
def get_reward
|
|
|
|
self.reward
|
|
|
|
end
|
|
|
|
|
|
|
|
def cancel_bidding
|
|
|
|
unless self.nil?
|
|
|
|
if User.current.id == self.user_id
|
|
|
|
self.destroy
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
private
|
|
|
|
|
|
|
|
def validate_user
|
|
|
|
errors.add :user_id, :invalid if user.nil? || !user.active?
|
|
|
|
end
|
|
|
|
|
|
|
|
def validate_bid
|
|
|
|
errors.add :bid_id, :invalid if bid.nil?
|
|
|
|
end
|
|
|
|
|
|
|
|
def validate_project
|
|
|
|
errors.add :project_id, :invalid if project.nil?
|
|
|
|
end
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|