自我通过其他模型上的数组字段连接到rails中

时间:2015-05-14 18:38:15

标签: ruby-on-rails postgresql

我们有2个PostgreSQL表如下:

Keywords table: id, keyword (string)
Joins table: id, keyword_ids (integers array)

现在,我想在关键字和别名模型中添加关联,如下所示

class Keyword < ActiveRecord::Base
   has_many :joins
end

class Join < ActiveRecord::Base
   belongs_to :keywords foreign_key: 'keyword_ids'
end

我如何在Rails 4和PostgreSQL 9.3中做到这一点?

1 个答案:

答案 0 :(得分:0)

似乎无法使用Rails关联,所以我做了以下模型/类方法

def alias_keywords
  AliasKeyword.select("keyword").joins("JOIN alias_joins ON alias_keywords.id = ANY(alias_joins.joins)").where("? = ANY(alias_joins.joins)", self.id).map{|x| x.keyword}
end

现在,我可以轻松访问AliasKeywords.first.alias_keywords