Rails中的set_primary_key错误

 yigoon 发布于 2023-02-12 19:04

我正在创建一个名为的表Index.这是迁移:

class CreateIndices < ActiveRecord::Migration
  def change
    create_table :indices, {:id => false} do |t|
      t.string :name
      t.float :returns, array: true, default: []
      t.float :navs, array: true, default: []
      t.float :sharpe

      t.timestamps
    end

    execute "ALTER TABLE indices ADD PRIMARY KEY (name);"
  end
end

一切正常.我在另一个Stack Overflow问题中看到,我必须set_primary_key在我的模型中包含命令才能使它工作,所以我在index.rb中有以下内容

class Index < ActiveRecord::Base
  set_primary_key :name

end

除了这两个文件之外,我没有更改默认的Rails脚手架(该应用程序是使用Postgres创建的默认数据库).当我去localhost:3000/indices,我得到以下错误

undefined method `set_primary_key' for #

如果我注释掉set_primary_key它会加载常规的空脚手架,但我认为这并没有给我我想要的主键功能.我究竟做错了什么?

1 个回答
  • 如果您使用的是rails 3.2或更高版本,该set_primary_key方法已被折旧,请查看Rails 3.2发行说明 - 第8.1节,它建议使用分配方法self.primary_key=,就像您在评论中所做的那样

    2023-02-12 19:08 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有