【问题标题】:Rails: no implicit conversion of String into IntegerRails:没有将字符串隐式转换为整数
【发布时间】:2025-07-29 18:35:02
【问题描述】:
class CreateAdminUsersPagesJoin < ActiveRecord::Migration[5.0]
  def up
    create_table :admin_users_pages2, :id => false  do |t|
      t.integer "admin_user_id"
      t.integer "page_id"
    end
    add_index :admin_users_pages2 ["admin_user_id", "page_id"]
  end

  def down
    drop_table :admin_users_pages2
  end
end

当我运行 rake db:migrate 它被中止并给出以下错误: 没有将 String 隐式转换为 Integer

感谢任何帮助。

【问题讨论】:

  • 您是从头开始运行rake db:migrate 的吗?
  • 还有[5.0]是什么关系?
  • 请正确格式化您的问题,以便阅读。使用格式栏中的 { } 标记格式化代码。
  • 使用--trace 选项运行rake db:migraterake db:migrate --trace 它为您提供了更多关于它究竟在哪里出错的信息。

标签: ruby-on-rails ruby migrate


【解决方案1】:
class CreateAdminUsersPagesJoin < ActiveRecord::Migration[5.0]
  def up
    create_table :admin_users_pages2, :id => false  do |t|
      t.integer "admin_user_id"
      t.integer "page_id"
    end
    add_index :admin_users_pages2, ["admin_user_id", "page_id"]
  end

  def down
    drop_table :admin_users_pages2
  end
end

您错过了 add_index 行的逗号。

【讨论】:

    最近更新 更多