当我设置1并从数据库加载时,ActiveRecord设置2列是错误的

时间:2019-02-21 22:08:13

标签: ruby-on-rails activerecord

我的桌子

CREATE TABLE files (
    id             INTEGER NOT NULL,
    name           VARCHAR2(50) NOT NULL
);

ALTER TABLE files ADD CONSTRAINT files_pk PRIMARY KEY ( name );

ALTER TABLE files ADD CONSTRAINT files__un UNIQUE ( id );

我的数据

INSERT INTO "FILES" (ID, NAME) VALUES ('1', 'a.txt')

Commit Successful


INSERT INTO "FILES" (ID, NAME) VALUES ('2', 'b.txt')

Commit Successful

我的模特

class Files < ActiveRecord::Base
    self.table_name="files"
    self.primary_keys = :name
end

先致电

Files.first
#<Files id: "a.txt", name: "a.txt">

创建新的

my_file=Files.new name: 'c.txt'
#<Files id: "c.txt", name: "c.txt">

Rails.version 5.2.2

Ruby版本2.6.0p0

从数据库中加载错误,设置属性错误,我需要具有这种结构的表,但无法使其正常工作。

有没有宝石'composite_primary_keys'我都感到这个问题

我用oracle和postgre进行测试

列ID是另一个表中的外键

0 个答案:

没有答案