Module: DatastaxRails::AttributeMethods::PrimaryKey::ClassMethods
- Defined in:
 - lib/datastax_rails/attribute_methods/primary_key.rb
 
Overview
:nodoc:
Constant Summary collapse
- ID_ATTRIBUTE_METHODS =
 %w(id id= id? id_before_type_cast).to_set
Instance Method Summary collapse
- #define_method_attribute(attr_name) ⇒ Object
 - #next_key ⇒ Object
 - 
  
    
      #primary_key  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
Defines the primary key field – can be overridden in subclasses.
 - 
  
    
      #primary_key=(value)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
Sets the name of the primary key column.
 - 
  
    
      #quoted_primary_key  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
Returns a quoted version of the primary key name, used to construct CQL statements.
 
Instance Method Details
#define_method_attribute(attr_name) ⇒ Object
      52 53 54 55 56 57 58  | 
    
      # File 'lib/datastax_rails/attribute_methods/primary_key.rb', line 52 def define_method_attribute(attr_name) super if attr_name == primary_key && attr_name != 'id' generated_attribute_methods.send(:alias_method, :id, primary_key) end end  | 
  
#next_key ⇒ Object
      95 96 97  | 
    
      # File 'lib/datastax_rails/attribute_methods/primary_key.rb', line 95 def next_key Cassandra::TimeUuid::Generator.new.now.to_s end  | 
  
#primary_key ⇒ Object
Defines the primary key field – can be overridden in subclasses. Overwriting will negate any effect of the primary_key_prefix_type setting, though.
      65 66 67  | 
    
      # File 'lib/datastax_rails/attribute_methods/primary_key.rb', line 65 def primary_key @primary_key || 'id' end  | 
  
#primary_key=(value) ⇒ Object
Sets the name of the primary key column.
class Project < DatastaxRails::Base
  self.primary_key = 'sysid'
end
You can also define the primary_key method yourself:
class Project < DatastaxRails::Base
  def self.primary_key
    'foo_' + super
  end
end
Project.primary_key # => "foo_id"
  
      90 91 92 93  | 
    
      # File 'lib/datastax_rails/attribute_methods/primary_key.rb', line 90 def primary_key=(value) @primary_key = value && value.to_s @quoted_primary_key = nil end  | 
  
#quoted_primary_key ⇒ Object
Returns a quoted version of the primary key name, used to construct CQL statements.
      71 72 73  | 
    
      # File 'lib/datastax_rails/attribute_methods/primary_key.rb', line 71 def quoted_primary_key @quoted_primary_key ||= connection.quote_column_name(primary_key) end  |