app/models/subscription.rb
class Subscription
include ActiveModel::Validations
include ActiveModel::Conversion
extend ActiveModel::Naming
attr_accessor :organisation_name, :user_name, :email, :password, :password_confirmation
def initialize(attributes = {})
attributes.each do |name, value|
send("#{name}=", value)
end
end
def persisted?
false
end
def user
@user ||= organisation.users.build :name => user_name,:email => email, :password => password, :password_confirmation => password_confirmation
end
def organisation
@organisation ||= Organisation.new :name => organisation_name
end
def valid?
unless organisation.valid?
self.errors.add( :organisation_name, organisation.errors[:name]) if organisation.errors[:name]
end
unless user.valid?
self.errors.add( :user_name, user.errors[:name]) if user.errors[:name]
self.errors.add( :password, user.errors[:password]) if user.errors[:password]
self.errors.add( :password_confirmation, user.errors[:password_confirmation]) if user.errors[:password_confirmation]
self.errors.add( :email, user.errors[:email]) if user.errors[:email]
end
self.errors.empty?
end
def save
if valid?
organisation.save and user.save
end
end
end