lib/database_slave/relation.rb in database_slave-0.1.1 vs lib/database_slave/relation.rb in database_slave-0.1.2
- old
+ new
@@ -31,16 +31,23 @@
ensure
ActiveRecord::Relation.class_variable_set(:@@slave_block_given, nil)
DatabaseSlave::RuntimeRegistry.current_slave_name = nil
end
else
+ # 不能使用抽象类级联式查询, 即不能使用ActiveRecord::Base.using().where()
+ if self.name.eql? DatabaseSlave::NoneActiveRecord.name
+ raise DatabaseSlave::AbstractClassWithoutBlockError,
+ 'a block must be given to abstract class, or you can use a specific class.'
+ end
+
self.slave_name = "DatabaseSlave::ConnectionHandler::#{slave_name.to_s.strip.camelize}"
relation = clone
if ActiveRecord::Base.slave_connections.include? self.slave_name
relation
else
- raise "#{slave_name} is not exist."
+ raise DatabaseSlave::SlaveConnectionNotExists,
+ "#{slave_name} is not exists."
end
end
else
clone
end