Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ## create_cases_users.rb
- class CreateCasesUsers < ActiveRecord::Migration
- def self.up
- create_table :cases_users do |t|
- t.column :case_id, :integer
- t.column :user_id, :integer
- t.timestamps
- end
- add_index :cases_users, [:case_id, :user_id]
- add_index :cases_users, [:user_id, :case_id]
- end
- def self.down
- drop_table :cases_users
- end
- end
- ## user.rb
- class User < ActiveRecord::Base
- include Authentication
- include Authentication::ByCookieToken
- has_many :cases_users
- has_many :cases, :through => :cases_users
- attr_accessor :answer, :password, :login, :old_password, :case_ids
- after_save :update_cases
- #after_save callback to handle case_ids
- def update_cases
- unless case_ids.nil?
- self.cases_users.each do |m|
- m.destroy unless case_ids.include?(m.case_id.to_s)
- case_ids.delete(m.case_id.to_s)
- end
- case_ids.each do |g|
- self.cases_users.create(:case_id => g) unless g.blank?
- end
- reload
- self.case_ids = nil
- end
- end
- ## case.rb
- class Case < ActiveRecord::Base
- has_many :cases_users
- has_many :users, :through => :cases_users
- # end relevant code
- end
- ## cases_users.rb
- class CasesUsers < ActiveRecord::Base
- belongs_to :user
- belongs_to :case
- end
- ## cases_controller.rb
- def add
- @case = Case.find(params[:id])
- @user = User.find(session[:user].id)
- @case << @user
- redirect_to :controller => :cases, :action => :my_cases
- end
Add Comment
Please, Sign In to add comment