Skip to content

Instantly share code, notes, and snippets.

@y00rb
Created July 5, 2014 15:19
Show Gist options
  • Save y00rb/eac0374bdd9da8531a38 to your computer and use it in GitHub Desktop.
Save y00rb/eac0374bdd9da8531a38 to your computer and use it in GitHub Desktop.
Better ActiveRecord
class Invite < ActiveRecord::Base
belongs_to :user
def accept!(user)
self.user = user
self.accepted = true
Membership.create!(:user => user)
save!
end
end
# issue1 if set accepted = true, but doesn't set user, how to do?
# then create Memvership in after_save
# more use validation to valid model, also validating composite case.
class Invite < ActiveRecord::Base
belongs_to :user
validates_presence_of :user_id, :if => :accepted?
after_save :create_membership_on_accept
private
def create_membership_on_accept
if accepted? && accepted_changed?
Membership.create!(:user => user) end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment