Guest User

Untitled

a guest
May 23rd, 2018
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.95 KB | None | 0 0
  1. class Work < ActiveRecord::Base
  2. has_and_belongs_to_many :chronicleperiods
  3. has_and_belongs_to_many :timeevents
  4. has_many :prizes
  5. has_many :awards, :through => :prizes
  6. belongs_to :creator
  7. belongs_to :category
  8.  
  9. validates_presence_of :category_id
  10. validates_presence_of :creator_id
  11. validates_presence_of :name
  12. #validates_uniqueness_of :name
  13. def name_with_year
  14. "#{name} (#{years})"
  15. end
  16.  
  17. end
  18. def self.sort(sort)
  19. if sort
  20. find(:all, :conditions => ["creator1 like ?;", sort + '%%'], :order => 'creator1' )
  21. #find_all_by_creator1(params[:creator1], :order_by => "creator1 ASC")
  22. #find_by_sql ["SELECT TRIM(CONCAT(SUBSTRING_INDEX(REPLACE(TRIM(creators.name),' ',' '), ' ',-1), ' ', SUBSTRING_INDEX(creators.name, ' ',1))) AS creator1, creators.name as creator FROM creators WHERE SUBSTRING_INDEX(REPLACE(TRIM(creators.name),' ',' '), ' ',-1) like ? ORDER BY creator1;", sort + '%%']
  23.  
  24. else
  25. find(:all, :order => 'creator1')
  26. end
  27. end
  28. def years
  29. (year_range_ends.blank?) ? year : "#{year} - #{year_range_ends}"
  30. end
  31. def award_ids=(param)
  32. self.awards = param.collect {|p| Award.find p}
  33. end
  34. def prize_won_year(award_id)
  35. rc = ''
  36. self.prizes.each do |p|
  37. if p.award.id == award_id
  38. rc = p.year_prize.to_s
  39. break
  40. end
  41. end
  42. rc
  43. end
  44. def prize_won_title(award_id)
  45. rc = ''
  46. self.prizes.each do |p|
  47. if p.award.id == award_id
  48. rc = 'selected="selected"' if (p.won == 0)
  49. break
  50. end
  51. end
  52. rc
  53. end
  54. end
  55.  
  56.  
  57. class Creator < ActiveRecord::Base
  58. has_many :works
  59. validates_presence_of :name
  60. validates_uniqueness_of :name
  61.  
  62. def self.creator1=(creator1)
  63. creator1=find_by_sql ["SELECT TRIM(CONCAT(SUBSTRING_INDEX(REPLACE(TRIM(creators.name),' ',' '), ' ',-1), ' ', SUBSTRING_INDEX(creators.name, ' ',1))) AS creator1 FROM creators WHERE creator.id = ?;", :id]
  64. end
  65. end
Add Comment
Please, Sign In to add comment