Abh*_*ram 12 ruby ruby-on-rails ruby-on-rails-3 ruby-on-rails-4 rolify
在捆绑安装gem(gem'rolify')之后,我使用以下命令生成了该文件,
rails g rolify Role User
Run Code Online (Sandbox Code Playgroud)
下面的文件已创建,
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
Run Code Online (Sandbox Code Playgroud)
然后,我给了
rake db:migrate
Run Code Online (Sandbox Code Playgroud)
它给了我警告,
[WARN] table 'Role' doesn't exist. Did you run the migration ? Ignoring rolify config.
Run Code Online (Sandbox Code Playgroud)
表也没有创建.我在这里错过了什么问题.这是我的迁移文件,
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
Run Code Online (Sandbox Code Playgroud)
我的版本,
Rails - 4.1.0 Ruby - 2.1.1
请任何人帮助我...
提前致谢.
小智 23
这是一个已知的错误rolify; 在没有.rb扩展名的情况下创建迁移,因此rake db:migrate不会进行迁移.
手动重命名迁移以添加.rb扩展名.更改:
db/migrate/20140425070708_rolify_create_roles
Run Code Online (Sandbox Code Playgroud)
成为:
db/migrate/20140425070708_rolify_create_roles.rb
Run Code Online (Sandbox Code Playgroud)
然后rake db:migrate再说一遍.
| 归档时间: |
|
| 查看次数: |
1983 次 |
| 最近记录: |