Sha256: 6ee3f8de1e5db952f5cbaa29f32c576703aaa6ba89fb7e293aab4a605fee356d

Contents?: true

Size: 793 Bytes

Versions: 2

Compression:

Stored size: 793 Bytes

Contents

class AddManyRolesStrategy < ActiveRecord::Migration
  def change
    create_roles
    create_user_roles
    add_index :roles, :name, :unique => true      
    
    # insert_roles
  end

  protected

  def create_user_roles
    create_table :<%= table_name.singularize %>_roles do |t|
      t.integer :<%= table_name.singularize %>_id
      t.integer :role_id
      t.timestamps
    end
    
    add_index :<%= table_name.singularize %>_roles, [:<%= table_name.singularize %>_id, :role_id], :unique => true  
  end

  def create_roles
    create_table :roles do |t|
      t.string  :name
      t.timestamps
    end
  end
  
  def insert_roles
    <%- roles_to_add.each do |role| -%>
      begin
        Role.create(:name => '<%= role %>')
      rescue
      end
    <%- end -%>
  end    
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
roles_active_record-0.5.1 lib/generators/active_record/roles_migration/templates/3_1/add_many_roles_strategy.erb
roles_active_record-0.5.0 lib/generators/active_record/roles_migration/templates/3_1/add_many_roles_strategy.erb