ruby-on-rails - Rails 3 有 find_by 关联魔法吗?

标签 ruby-on-rails ruby-on-rails-3 associations

具体来说,让我们假设我们有两个合理的模型:

  • TieDyeCentipede , 其中 has_many :legs
  • Leg ,其中有一个 :color属性。

  • 成为 TieDyeCentipede ,没有两条腿的颜色是一样的。事实上,一条腿的颜色在中是独一无二的。全部 我们所有的腿的TieDyeCentipedes .

    基于这种唯一性,我们想找到一个特定的 Centipede通过特定颜色的腿——比方说 :deep_sky_blue .

    我可以做这样的事情:
    critter = Leg.find_by_color(:deep_sky_blue).tie_dye_centipede
    但是,有没有find_by_* TieDyeCentipede上的方法我也可以使用的类?

    最佳答案

    没有魔法:

    TieDyeCentipede.joins(:legs).where(:legs => {:color => 'deep_sky_blue'}).first
    

    一些魔法:
    def self.find_by_leg_color(color)
      TieDyeCentipede.joins(:legs).where(:legs => {:color => color}).first
    end
    

    关于ruby-on-rails - Rails 3 有 find_by 关联魔法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4801513/

    相关文章:

    ruby-on-rails - 可以使模块名称大写吗?

    ruby-on-rails - 为什么是:if not being recognised by ActiveRecord validations?

    ruby-on-rails - 为什么回形针插值不起作用?

    ruby-on-rails - 如何将当前模型保留在我的方法范围内

    ruby-on-rails - 如何摆脱归因于 rails 关联的 n+1 查询?

    ruby-on-rails - Controller 不继承 before_filter

    ruby-on-rails - Rails 3 与设计 : No route matches/d/users/sign_out

    ruby-on-rails - Rails:关于产量

    class - UML - 3 个类之间的关联

    没有显式外键关系的 Linq To SQL