Rails属于很多但父级只有has_one

时间:2015-10-30 19:03:53

标签: ruby-on-rails

我有三个模型,interactioncontactcompanycompany has_many contactsinteraction has_one contactcontact可以属于一个company,但可以属于许多互动。我怎样才能在rails中表示?

contactcompany_idinteractioncontact_id是有意义的,但是你不能调用interaction.contact,因为rails将其视为

SELECT "contacts".* FROM "contacts" WHERE "contacts"."interaction_id" = $1 LIMIT 1

其中$1是我contact_id interaction中的SELECT "contacts".* FROM "contacts" WHERE "contacts"."id" = $1 LIMIT 1 ,它没有做我想做的事,这就像

   private String getFullPath(BoxFile.Info info)
   {
      List<BoxFolder> filePathList = info.getPathCollection();
      StringBuffer fullPathStringBuffer = new StringBuffer("");
      for (BoxFolder pf : filePathList)
      {
         fullPathStringBuffer.append("/").append(pf.getInfo().getName());
      }
      System.out.println(fullPathStringBuffer.toString());
      return fullPathStringBuffer.toString();
   }

1 个答案:

答案 0 :(得分:1)

这种安排符合您的使用案例:

class Company

  has_many :contacts

end

class Contact

  belongs_to :company
  has_many :interactions

end

class Interaction

  belongs_to :contact

end

您还可以浏览bi-directional associations,但这更像是一个高级主题。