ruby-on-rails - rails - rolify remove role
Las tablas de Rolify no se crean (2)
Es un error conocido con rolify
; la migración se crea sin la extensión .rb
por lo que el rake db:migrate
.rb
no lo recoge.
Cambie el nombre de su migración manualmente para agregar la extensión .rb. Cambio:
db/migrate/20140425070708_rolify_create_roles
ser:
db/migrate/20140425070708_rolify_create_roles.rb
Y luego rake db:migrate
nuevo.
Después de instalar la gema (gema ''rolify''), he generado el archivo usando el siguiente comando:
rails g rolify Role User
Debajo de los archivos creados,
invoke active_record
create app/models/role.rb
invoke rspec
create spec/models/role_spec.rb
invoke factory_girl
create spec/factories/roles.rb
insert app/models/role.rb
create db/migrate/20140425070708_rolify_create_roles
insert app/models/user.rb
create config/initializers/rolify.rb
Entonces, di
rake db:migrate
Me está dando la advertencia,
[WARN] table ''Role'' doesn''t exist. Did you run the migration ? Ignoring rolify config.
Además, las tablas no se crean. ¿Cuál es el problema? ¿Me falta algo aquí? Este es mi archivo de migración
class RolifyCreateRoles < ActiveRecord::Migration
def change
create_table(:roles) do |t|
t.string :name
t.references :resource, :polymorphic => true
t.timestamps
end
create_table(:users_roles, :id => false) do |t|
t.references :user
t.references :role
end
add_index(:roles, :name)
add_index(:roles, [ :name, :resource_type, :resource_id ])
add_index(:users_roles, [ :user_id, :role_id ])
end
end
Mis versiones
Rails - 4.1.0 Ruby - 2.1.1
Por favor, alguien me ayude en esto ...
Gracias por adelantado.
Tuve el mismo problema con Rails 5.2.5 y Rolify 5.0.0 y con Devise 3.5.3
ActiveRecord::StatementInvalid: Mysql2::Error: Table ''papi_development.roles'' doesn''t exist: SELECT `roles`.* FROM `roles`
Lo arreglé comentando mi línea Devise en el modelo de Usuario antes de ejecutar el comando rake db: migrate.
class User < ActiveRecord::Base
...
# devise :database_authenticatable, :registerable, :recoverable, :rememberable, :trackable, :validatable
...
end
Después de la migración exitosa, no comenté la línea de diseño y todo pareció funcionar bien a partir de ese momento.