Ruby on rails 在IRB上创建对象
我试图在irb上创建一个对象“借出”来测试我的数据库和表连接,但我做不到。 如果在creation命令中指定:customer\u id=>1,则我已成功完成 数据库表中的customer_id字段未设置为NOTNULL 有人能帮我吗 这是我正在尝试的命令和错误: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(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