首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用has_one在两个表之间建立关系,但没有一个表存储相邻表的id

如何使用has_one在两个表之间建立关系,但没有一个表存储相邻表的id
EN

Stack Overflow用户
提问于 2013-11-18 09:50:08
回答 1查看 107关注 0票数 0

我有一个表名策略,它是这样的:

代码语言:javascript
复制
+---+  +----+  +---+  
|id |  | a  |  | b    
+---+  +----+  +---+  
|1  |  |  1 |  | 2 |  
|2  |  |  2 |  | 3 |  
|3  |  |  2 |  | 4 |  
|4  |  |  4 |  | 1 |  
|5  |  |  4 |  | 4 |  
+---+  +----+  +---+  

我有一个类名计划,看起来是:

代码语言:javascript
复制
class Plan < ActiveRecord::Base
  attr_accessible :a, :b
  has_one :strategy  ...................
end

现在我想填充这个空的has-one关系。策略表有列ab,两列总是有不同的组合,如表所示。现在,我不知道如何在两个表之间建立关系,因为策略表既不属于Plan,也不属于Plan表存储策略表id。策略表仅包含一些静态值。但是,计划有一定的a和b值,我希望在计划的a值和b值的基础上,使用has_one关系来确定战略表的id。在rails中是否可以这样做,或者我需要遵循一些旧的逻辑。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-18 10:00:09

您可以手动构建关联。

在你的计划模型中

代码语言:javascript
复制
def strategy
  @strategy ||= Strategy.where("a = ? AND b = ?", a, b).first
end

这将使您在代码中引用my_plan.strategy。

编辑答案更新,包括钱德拉舒的优秀建议..。回忆录和处理具有重复a,b值的多个策略的情况

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20044693

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档