gpt4 book ai didi

ruby-on-rails - Rails .save() 不存储 Id

转载 作者:行者123 更新时间:2023-11-29 14:24:26 27 4
gpt4 key购买 nike

我在 Rails 中编写一个 RESTful API,当我创建一个 Label 对象并使用 .save() 方法时,标签已正确保存到数据库但调用了 @label .id 返回 null。

puts 语句验证除了 id 字段之外的所有内容都是正确的。我还验证了数据库具有正确的 ID。

另请注意:这是嵌套资源 URL 的内部:POST/members/:member_id/labels/

有没有人遇到过这种情况?

def create
if params[:member_id] and params[:title]

# Periods in a username will have been translated to underscores
member_id = params[:member_id].gsub('_', '.')
title = params[:title]

# @member = Member.find(member_id) # No longer in use
@label = Label.new(:username => member_id, :title => title)

if @label.save

puts " *** label: #{@label.inspect}"
@label.reload

respond_to do |format|
format.json { render :json => @label, :status => :created and return }
end
else
respond_with :status => 406, :errors => @label.errors and return
end

end

respond_with :status => 406, :errors => [ :message => "member_id and title parameters must be provided" ] and return
end

不幸的是,我无法按要求提供迁移文件,因为我正在连接到最初通过 PHP 查看的现有 PostgreSQL 数据库。但是,下面是 create table 语句以及 select * 的样子。

DROP TABLE student_labels;
CREATE TABLE student_labels (
id serial not null,
username text not null,
title text not null,
created_at timestamp not null default now(),
updated_at timestamp not null default now(),
deleted_at timestamp
);
development=> select * from student_labels; id | username |    title     |         created_at         |         updated_at         | deleted_at----+----------+--------------+----------------------------+----------------------------+------------  7 | F0003    | Boom         | 2011-03-10 05:49:06.01771  | 2011-03-10 05:49:06.01771  |  8 | F0003    | Boom         | 2011-03-10 05:49:28.659    | 2011-03-10 05:49:28.659    |  9 | F0003    | Boom         | 2011-03-10 05:52:03.343815 | 2011-03-10 05:52:03.343815 | 10 | F0003    | Boom         | 2011-03-10 05:53:07.803489 | 2011-03-10 05:53:07.803489 |

最佳答案

问题是您的 id 列不是主键,因此数据库在请求最后一个的 id 时不知道应该给 rails 什么插入行。

关于ruby-on-rails - Rails .save() 不存储 Id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5256490/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com