Guest User

Untitled

a guest
Jun 20th, 2018
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.44 KB | None | 0 0
  1. ## create_cases_users.rb
  2. class CreateCasesUsers < ActiveRecord::Migration
  3. def self.up
  4. create_table :cases_users do |t|
  5. t.column :case_id, :integer
  6. t.column :user_id, :integer
  7.  
  8. t.timestamps
  9. end
  10.  
  11. add_index :cases_users, [:case_id, :user_id]
  12. add_index :cases_users, [:user_id, :case_id]
  13. end
  14.  
  15. def self.down
  16. drop_table :cases_users
  17. end
  18. end
  19.  
  20. ## user.rb
  21. class User < ActiveRecord::Base
  22. include Authentication
  23. include Authentication::ByCookieToken
  24.  
  25. has_many :cases_users
  26. has_many :cases, :through => :cases_users
  27.  
  28. attr_accessor :answer, :password, :login, :old_password, :case_ids
  29. after_save :update_cases
  30.  
  31. #after_save callback to handle case_ids
  32. def update_cases
  33. unless case_ids.nil?
  34. self.cases_users.each do |m|
  35. m.destroy unless case_ids.include?(m.case_id.to_s)
  36. case_ids.delete(m.case_id.to_s)
  37. end
  38. case_ids.each do |g|
  39. self.cases_users.create(:case_id => g) unless g.blank?
  40. end
  41. reload
  42. self.case_ids = nil
  43. end
  44. end
  45.  
  46. ## case.rb
  47. class Case < ActiveRecord::Base
  48. has_many :cases_users
  49. has_many :users, :through => :cases_users
  50. # end relevant code
  51. end
  52.  
  53. ## cases_users.rb
  54. class CasesUsers < ActiveRecord::Base
  55. belongs_to :user
  56. belongs_to :case
  57. end
  58.  
  59. ## cases_controller.rb
  60. def add
  61. @case = Case.find(params[:id])
  62. @user = User.find(session[:user].id)
  63. @case << @user
  64.  
  65. redirect_to :controller => :cases, :action => :my_cases
  66. end
Add Comment
Please, Sign In to add comment