Miguel Angel Calleja Lázaro wrote:
Aha, muchas gracias, ahora me ha surgido la duda de cómo puedo insertar
los valores en esta tabla, con una consulta de sql a pelo? o a través de
un modelo? En este caso tendrÃa que hacer un modelo que me buscara mi
tabla “proyectos_categorias”, no? Gracias por vuestra ayuda
class CreateUsuarios < ActiveRecord::Migration
def self.up
create_table “grupos”, :force => true do |t|
t.column “nombre”, :string, :limit => 80
end
Grupo.create :nombre => “admin”
Grupo.create :nombre => “demo”
Grupo.create :nombre => “report”
Grupo.create :nombre => “sales”
Grupo.create :nombre => “user”
create_table “usuarios”, :force => true do |t|
t.column “login”, :string, :limit => 80
end
Usuario.create :login => “erik”
Usuario.create :login => “george”
Usuario.create :login => “jack”
Usuario.create :login => “lori”
Usuario.create :login => “sara”
create_table “permisos”, :id => false, :force => true do |t|
t.column “grupo_id”, :integer, :default => 0, :null => false
t.column “usuario_id”, :integer, :default => 0, :null => false
end
end
def self.down
drop_table :grupos
drop_table :usuarios
drop_table :permisos
end
end
Basado en la migración anterior debes tener los siguientes modelos:
app/models/usuario.rb
class Usuario < ActiveRecord::Base
has_many :permisos, :dependent => true
has_many :grupos, :through => :permisos
end
app/models/grupo.rb
class Grupo < ActiveRecord::Base
has_many :permisos, :dependent => true
has_many :usuarios, :through => :permisos
end
app/models/permiso.rb
class Permiso < ActiveRecord::Base
belongs_to :grupo
belongs_to :usuario
end
Espero te sirva.
Saludos