Ruby on rails 在IRB上创建对象

Ruby on rails 在IRB上创建对象,ruby-on-rails,irb,Ruby On Rails,Irb,我试图在irb上创建一个对象“借出”来测试我的数据库和表连接,但我做不到。 如果在creation命令中指定:customer\u id=>1,则我已成功完成 数据库表中的customer_id字段未设置为NOTNULL 有人能帮我吗 这是我正在尝试的命令和错误: irb(main):004:0> emprestimo = Emprestimo.create(:valor => 10000.00, :qnt_parcelas => 10, :valor_parcelas =&g

我试图在irb上创建一个对象“借出”来测试我的数据库和表连接,但我做不到。 如果在creation命令中指定:customer\u id=>1,则我已成功完成

数据库表中的customer_id字段未设置为NOTNULL

有人能帮我吗

这是我正在尝试的命令和错误:

irb(main):004:0> emprestimo = Emprestimo.create(:valor => 10000.00, :qnt_parcelas => 10, :valor_parcelas => 1000.00, :banco => 'Bic', :corretora => 'milreais')
   (0.2ms)  BEGIN
   (0.2ms)  ROLLBACK
=> #<Emprestimo id: nil, cliente_id: nil, valor: 10000.0, qnt_parcelas: 10, valor_parcelas: 1000.0, data_emprestimo: nil, banco: "Bic", corretora: "milreais", created_at: nil, updated_at: nil>
我的客户和Emprestimo模型:

class Emprestimo < ApplicationRecord

    belongs_to :cliente
end

class Cliente < ApplicationRecord
    has_one :endereco
    has_many :emprestimos
end
class Emprestimo

非常感谢。

实际上,在Rails 5中,
属于
关系现在是默认需要的。它基本上在您的foreing密钥中添加了一个状态验证程序

您可以禁用此行为,添加
可选:true
,因为
属于
参数,如下所示:

belongs_to :cliente, optional: true
从:

4.1.2.11:可选

如果将:optional选项设置为true,则不会验证关联对象的存在。默认情况下,此选项设置为false


请发布您发出的命令、显示的错误(如果有)以及您的
db/schema.rb
@mrlew。我已经发布了这些信息。谢谢。问题是数据没有被持久化到数据库?就这样?是的。如果我在命令中添加cliente_id,数据就会持久化到数据库中,比如:emprestimo=emprestimo.create(:cliente_id=>1,:valor=>10000.00,:qnt_parcelas=>10,:valor_parcelas=>1000.00,:banco=>Bic',:corretora=>milreais')。但我认为它不正确,因为该字段不为null。是否存在任何验证错误?调用
create
后,可以调用
empretimo.errors.full_messages
并检查是否存在任何错误。你能检查一下这个吗?也许您在客户关系中有一个状态验证程序。您介意发布
Emprestimo
模型吗?
belongs_to :cliente, optional: true