私は場所やカテゴリに属するいくつかの投稿を持っています.Craigslistのようなものです。Rails:scope order question
最近投稿された順に並べ替え、ユーザーが指定した場所とカテゴリでフィルタしたいと思います。
誰かがこれを行う方法の例/ヒントを与えることはできますか?
私は場所やカテゴリに属するいくつかの投稿を持っています.Craigslistのようなものです。Rails:scope order question
最近投稿された順に並べ替え、ユーザーが指定した場所とカテゴリでフィルタしたいと思います。
誰かがこれを行う方法の例/ヒントを与えることはできますか?
Rails 3では、注文、雑音などを一緒に変更することができます。 ASCICasts on activerecord queries in Rails3
query = Post.order("published_at desc")
query = query.where("location_id = ?", params[:location_id]) unless params[:location_id].blank?
query = query.where("category_id = ?", params[:category_id]) unless params[:category_id].blank?
@posts = query.all
カテゴリと場所を投稿に並べ替えるために使用するフィールドをキャッシュすることができます。
before_save: cache_sortables
def cache_sortables
self.category_title = self.category.title if self.category?
self.location_title = self.location.title if self.location?
end
Post.find(:all, :order => 'location_title, category_title, created_at')
親カテゴリ/位置のタイトルが変更されたときに投稿を更新することは、読者の練習として残されています。
どのようにlocation_idを指定できますか? – SuperString
投稿もhas_manyタグ。たとえば、投稿にはjavaタグとcssタグがあります。 javaタグだけですべての投稿をフィルタリングしたい場合があります。または、javaタグとcssタグの両方を持つ投稿。それ、どうやったら出来るの? – SuperString
私のコードの2行目は、location_idを指定しています。 ORクエリの実行方法については、2番目の質問を検索または開く必要があります。 –