[前][次][番号順一覧][スレッド一覧]

rails:3181

From: take_tk <ggb03124@n...>
Date: Thu, 03 Sep 2009 20:32:27 +0900
Subject: [rails:3181] Re: Active Record での書き方

たけ(tk)です。

[rails:3178] Re: Active Record での書き方 にて 
take_tk <ggb03124@n...> さん 曰く:

> > 「新着情報の最新の10件、または24時間以内に登録されたもの」
> 
> 試していませんが・・
> 
> @articles = ( Article.find(新着情報の最新の10件) | Article.find(24時
> 間以内に登録されたもの))
> 
> でどうでしょうか?

二つのfindで取得されたオブジェクトのobject_idは異なるかもしれない。よっ
て、駄目かもしれない。[ruby-dev:37998]『 [Feature:1.9]
{Array,Enumerable}#uniq_by, #uniq_by!』によると、ruby1.9には uniq_by が
入るかもしれない。これを、自前で作っておいて・・。

class Array
  def uniq_by
    tmp = collect{|item| [yield(item) , item]}
    hash = tmp.reverse.inject({}){|h,t| h[t[0]]=t[1] ; h}
    keys = tmp.collect{|pair| pair[0] }.uniq
    keys.collect{|k| hash[k]}
  end
end

@articles = ( Article.find(新着情報の最新の10件) | Article.find(24時間以内に登録されたもの
)).uniq_by{| model | mode.id }

で、どうでしょう?

take_tk = kumagai hidetake

--
ML: rails@r...
使い方: http://QuickML.com/

[前][次][番号順一覧][スレッド一覧]

      3174 2009-09-02 10:58 [maf01541@n...       ] Active Record での書き方                
      3178 2009-09-03 11:36 ┣[ggb03124@n...       ]                                       
->    3181 2009-09-03 13:32 ┃┗[ggb03124@n...       ]                                     
      3180 2009-09-03 11:58 ┣[sakuro@2...         ]                                       
      3184 2009-09-04 03:34 ┃┗[ggb03124@n...       ]                                     
      3185 2009-09-04 05:56 ┃ ┗[ofl@c...            ]                                   
      3189 2009-09-04 13:12 ┃  ┗[maf01541@n...       ]                                 
      3205 2009-09-12 01:40 ┃   ┗[maf01541@n...       ]                               
      3206 2009-09-12 02:06 ┃    ┣[nov@y...            ]                             
      3208 2009-09-12 02:46 ┃    ┃┗[maf01541@n...       ]                           
      3209 2009-09-12 03:00 ┃    ┗[ofl@c...            ]                             
      3182 2009-09-03 20:43 ┗[nov@y...            ]                                       
      3183 2009-09-03 21:05  ┗[nov@y...            ]