Ruby on Rails中嵌套的has_many关系如何改写为长尾?

2026-04-11 19:471阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计308个文字,预计阅读时间需要2分钟。

Ruby on Rails中嵌套的has_many关系如何改写为长尾?

在Rails 2.3.5中,若`User`模型通过`Class User ActiveRecord::Base`定义,并且`User`模型通过`has_many :phones`与`Phone`模型关联,而`Phone`模型通过`has_many :frequency_bands`与`FrequencyBand`模型关联,以下是如何为`User`模型编写一个方法来获取所有`frequency_bands`的方法:

rubyclass User :phones

def freq_bands self.frequency_bands endend

我正在使用Rails 2.3.5.

Ruby on Rails中嵌套的has_many关系如何改写为长尾?

Class User < ActiveRecord::Base has_many :phones end class Phone < ActiveRecord::Base has_many :frequency_bands end

我想为用户获取所有frequency_bands.我知道我可以为用户编写def freq_bands方法,但我想知道是否可以为用户提供has_many freq_bands.通过这种方式,我可以链接呼叫.

我想拥有的是什么

class User < ActiveRecor::Base has_many :frequence_bands, :through => phones end

我认为使用这个插件github.com/ianwhite/nested_has_many_through可以嵌套has_many

但是,如果可能的话,我想避免使用另一个插件并仅依靠rails.

class User < ActiveRecord::Base has_many :phones has_many :frequence_bands, :through => :phones end

工作得很好.如果手机本身也是一个has_many_through关系,你只需要嵌套的has_many_through插件,它不在你的例子中.

(编辑:不要忘记最后一个属性前面的“:”)

本文共计308个文字,预计阅读时间需要2分钟。

Ruby on Rails中嵌套的has_many关系如何改写为长尾?

在Rails 2.3.5中,若`User`模型通过`Class User ActiveRecord::Base`定义,并且`User`模型通过`has_many :phones`与`Phone`模型关联,而`Phone`模型通过`has_many :frequency_bands`与`FrequencyBand`模型关联,以下是如何为`User`模型编写一个方法来获取所有`frequency_bands`的方法:

rubyclass User :phones

def freq_bands self.frequency_bands endend

我正在使用Rails 2.3.5.

Ruby on Rails中嵌套的has_many关系如何改写为长尾?

Class User < ActiveRecord::Base has_many :phones end class Phone < ActiveRecord::Base has_many :frequency_bands end

我想为用户获取所有frequency_bands.我知道我可以为用户编写def freq_bands方法,但我想知道是否可以为用户提供has_many freq_bands.通过这种方式,我可以链接呼叫.

我想拥有的是什么

class User < ActiveRecor::Base has_many :frequence_bands, :through => phones end

我认为使用这个插件github.com/ianwhite/nested_has_many_through可以嵌套has_many

但是,如果可能的话,我想避免使用另一个插件并仅依靠rails.

class User < ActiveRecord::Base has_many :phones has_many :frequence_bands, :through => :phones end

工作得很好.如果手机本身也是一个has_many_through关系,你只需要嵌套的has_many_through插件,它不在你的例子中.

(编辑:不要忘记最后一个属性前面的“:”)