如何在 rails 控制台中创建嵌套记录时传入父实例?

How to pass in parent instance on creation of a nested record in rails console?

我在 rails 控制台上乱搞,我一直在尝试做一些非常简单的事情。

Quote_requests has_one Quote属于它。

在 Quote init 方法中,我声明它需要三个参数,none 是父 Quote_request。这些模型是在 rails 中创建的,每边都有正确定义的关系语句。

我正在尝试使用 rails 控制台中的对象在 quote_request 上创建一个新报价,并且 Quote.new(arg1, arg2, arg3) returns 一个未初始化的报价对象;

=> #<Quote:0x007fb64471b978 not initialized>

因为我猜它打破了 rails 应用程序中定义的关系,因为它应该 belong_to 一个 Quote_request 实例,而我没有将它传递给 in/connected quote_request 实例。我有一个已创建并准备就绪的 quote_request 实例,但我无法调用;

my_quote_request.quote.new(arg1, arg2, arg3)

你能帮我解决这个简单但基本的关系、对象和消息传递练习吗?

谢谢

如果您定义了 Quote_request has_one Quote 确保具有 "id" 的是 quote,因此您可以从您的模式文件中检查模型 Quote 具有 quote_request_id

和parent(Quote_request)创建child(引用)的方式,你可以从这个网站上查看http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html

作为样本

@quote_request = QuoteRequest.new
@quote = @quote_request.create_quote(arg1, arg2, arg 3)