gpt4 book ai didi

ruby-on-rails - 如何在 Rails 中通过命名空间模型使用 has_many?

转载 作者:行者123 更新时间:2023-12-04 16:56:30 25 4
gpt4 key购买 nike

我有一个名为 Accounting::Invoice 的命名空间模型

我还有一个模型叫 Contact
Accounting::Invoice通过另一个名为 Contactable 的模型有很多联系人-- 这是在发票被拆分为多个联系人的情况下。

但是由于某种原因,我无法获得 has_many through协会工作。

我可以让它朝一个方向工作,例如:Contact.first.accounting_invoices ,但反过来,例如:Accounting::Invoices.first.contacts给我一个错误,看起来像:
SQLite3::SQLException: no such column: contactables.invoice_id...
有任何想法吗?我不确定 ActiveRecord 的来源 contactabes.invoice_id .我已经明确定义了我的表名和类名以使用 accounting_invoices表和Accounting::Invoice恭敬地上课。

最佳答案

您可以使用 :foreign_key => 'accounting_invoice_id选项告诉 rails 使用哪个字段。查看 has_many 的文档有关更多信息(http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html#method-i-has_many)。

相关部分是:

:foreign_key
Specify the foreign key used for the association. By default this is guessed to be the name of this class in lower-case and “_id” suffixed. So a Person class that makes a has_many association will use “person_id” as the default :foreign_key.

关于ruby-on-rails - 如何在 Rails 中通过命名空间模型使用 has_many?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14105118/

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