【问题标题】:Problems running rails db:migrate with rolify运行 rails db:migrate with rolify 的问题
【发布时间】:2020-05-11 07:30:34
【问题描述】:

目前正在尝试将 rolify 安装到我的 rails 应用程序

按照 github 上的步骤,运行 rails db:migrate 后出现以下错误

/home/alex/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rolify-5.2.0/lib/rolify.rb:30: warning: Using the last argument as keyword parameters is deprecated; maybe ** should be added to the call
/home/alex/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activerecord-6.0.3/lib/active_record/associations.rb:1826: warning: The called method `has_and_belongs_to_many' is defined here
rake aborted!
NoMethodError: undefined method `Migration' for ActiveRecord:Module
/mnt/d/linux-docs/projects/code/rails/kream/kream/src/db/migrate/20200511073629_rolify_create_roles.rb:1:in `<main>'

Caused by:
NoMethodError: undefined method `Migration' for ActiveRecord:Module
/mnt/d/linux-docs/projects/code/rails/kream/kream/src/db/migrate/20200511073629_rolify_create_roles.rb:1:in `<main>'
Tasks: TOP => db:migrate
(See full trace by running task with --trace)

【问题讨论】:

    标签: r ruby-on-rails ruby rolify


    【解决方案1】:

    在迁移文件中修改版本号

    class RolifyCreateRoles < ActiveRecord::Migration[6.0]
      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, :resource_type, :resource_id ])
        add_index(:users_roles, [ :user_id, :role_id ])
      end
    end
    

    【讨论】:

      猜你喜欢
      • 2019-02-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-02
      • 2017-12-10
      • 2011-07-14
      • 2018-09-29
      相关资源
      最近更新 更多