Files
old-izreke/app/models/proverb.rb
2016-09-08 09:59:42 +02:00

41 lines
737 B
Ruby

class Proverb < ApplicationRecord
belongs_to :author
belongs_to :user
before_validation :setup_ownership
attr_writer :author_name, :user_email
def author_name
author.try(:name) || @author_name
end
def user_email
user.try(:email) || @user_email
end
private
def setup_ownership
if author
author.update_attributes(name: author_name)
else
self.author = Author.new(name: author_name)
author.identify_uniquely
author.save
end
if user
user.update_attributes(email: user_email.downcase)
else
self.user = User.create(email: user_email.downcase)
end
end
def attributes
super.merge(author_name: author_name, user_email: user_email)
end
end