12

gem (gem 'rolify') をバンドル インストールした後、次のコマンドを使用してファイルを生成しました。

rails g rolify Role User

以下のファイルが作成され、

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

それから、私は与えました

rake db:migrate

それは私に警告を与えます、

[WARN] table 'Role' doesn't exist. Did you run the migration ? Ignoring rolify config.

また、テーブルが作成されていません。ここに何かが欠けているという問題は何ですか? これは私の移行ファイルです。

 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

私のバージョン、

レール - 4.1.0 ルビー - 2.1.1

誰でもこれで私を助けてください..

前もって感謝します。

4

2 に答える 2

23

これは既知のバグrolifyです。移行は.rb拡張子なしで作成されるため、rake db:migrateはそれを取得しません。

移行の名前を手動で変更して、.rb 拡張子を追加します。変化する:

db/migrate/20140425070708_rolify_create_roles

することが:

db/migrate/20140425070708_rolify_create_roles.rb

そしてrake db:migrateまた。

于 2014-04-25T08:43:51.593 に答える