Sha256: 742be542da925b94e7ac76bf05276e26d9cbd5034184869bc04c2fdd3ccef3a2
Contents?: true
Size: 1.42 KB
Versions: 3
Compression:
Stored size: 1.42 KB
Contents
require 'action_view/helpers/auto_tag_helper/form_info' require 'activerecord/mlang' class OrgMember < ActiveRecord::Base belongs_to :org belongs_to :lang belongs_to :org_director_type belongs_to :org_member_type include ActiveRecord::Mlang include ActionView::Helpers::AutoTagHelper::FormInfo set_accessible_attrs :lang_id, :org_director_type_id, :org_member_type_id, :handle_name, :byear, :bmonth, :bday, :entried_on, :sex, :expire_at, :retired_on set_input_options :byear, min: Time.now.year - 120, max: Time.now.year set_input_options :bmonth, min: 1, max: 12 set_input_options :bday, min: 1, max: 31 set_input_options :sex, min: -1, max: 1 def others self.class.where(org_id: self.org_id).where.not(id: self.id) end before_save do if changed_attributes[:org_director_type_id] limit = OrgDirectorType.select(:limit).where(id: self.org_director_type_id).first.limit if limit < 1 || others.where(org_director_type_id: self.org_director_type_id).count < limit # no problem else raise WeBridge::Exceptions::ForbiddenError end end end def <=>(other) [:director_type, :member_type, :entried_on, :created_at].inspect(nil){|rtn,m| rtn || (self.try(m) <=> other.try(m)).to_i.nonzero? } end def __display__ self.handle_name.presence || self.real_name.presence || self.id.to_s end def real_name self.text(self.lang_id).try(:name).to_s end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
we_bridge_rails_engine_orgs-0.1.3 | app/models/org_member.rb |
we_bridge_rails_engine_orgs-0.1.2 | app/models/org_member.rb |
we_bridge_rails_engine_orgs-0.1.1 | app/models/org_member.rb |