【问题标题】:has_many and belongs_to on other fieldshas_many 和 belongs_to 在其他领域
【发布时间】:2012-02-20 11:40:34
【问题描述】:

我有两个具有token 字段的模型。它们被称为TicketMessage

我的票模型看起来像这样。

class Ticket < ActiveRecord::Base
  include UUIDHelper

  has_many :messages, :primary_key => "token", :foreign_key => "token"
end

现在我正在从这样的 rake 任务中创建一条新消息。

new_message = Message.new
new_message.token = uuid
new_message.save

我的令牌被保存到消息中,但随后它从票证中返回一组空消息,就像这样

@ticket.messages

我认为我的票证模型不太正确。

【问题讨论】:

  • Ticket.messages 没有任何意义。 Ticket 是模型类。你不能打电话给messages;你只能在类的实例上调用它。
  • 如果将:class_name =&gt; 'Message' 添加到has_many 会怎样?
  • 对不起@BenLee 我刚刚修正了错字
  • @JosephLeBrech,您应该确认@ticket.token == uuid
  • 另外,当您说“无法加载集合”时,也许您应该更清楚您的意思——它是否返回一个空集?运行时错误?还有什么?

标签: ruby-on-rails foreign-keys primary-key models


【解决方案1】:

抱歉,在使用 rails 控制台后,我注意到令牌不存在,而是对 ruby​​ Match 对象的引用。我忘记将匹配结果设置为字符串,它没有将令牌保存到模型中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-06-06
    • 1970-01-01
    • 2013-06-29
    • 1970-01-01
    • 1970-01-01
    • 2013-11-07
    • 2014-08-09
    • 2011-12-20
    相关资源
    最近更新 更多