【问题标题】:How to use delegate method for more than two associations?如何将委托方法用于两个以上的关联?
【发布时间】:2011-03-09 23:31:23
【问题描述】:

假设我通过调用以下关联链来检索运动的名称:

pick.event.league.sport.name

如何使用delegate method 以便我可以像这样调用 *pick.event_league_sport_name*?显然,我可以在pick模型中创建一个方法:

def event_league_sport_name
     return self.event.league.sport.name
end

但我想使用delegate method!!!

【问题讨论】:

    标签: ruby-on-rails associations delegation


    【解决方案1】:

    我不建议这样做,但如果你愿意...

    delegate :name , :to => "event.league.sport" ,:prefix=>"event_league_sport"
    

    也没有前缀。

    一定要处理 nil 关联...

    祝你有美好的一天!

    【讨论】:

      【解决方案2】:

      您可以执行以下操作:

      class Pick
        def sport
          event.league.sport
        end
      
        delegate :name, :to => :sport
      end
      

      这将导致pick.name 等同于pick.event.league.sport.name

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-11-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-09-08
        • 1970-01-01
        • 2012-09-09
        相关资源
        最近更新 更多