私はすべての記事のリストをクライアント名で注文しています。次の前の記事(注文に基づく)
articles_controller.rb - 私のショーのページでインデックス
@articles = Article.order('client')
、どのように私はその順序で次と前の記事を得るのですか?
私はすべての記事のリストをクライアント名で注文しています。次の前の記事(注文に基づく)
articles_controller.rb - 私のショーのページでインデックス
@articles = Article.order('client')
、どのように私はその順序で次と前の記事を得るのですか?
を動作するはずです。(「クライアント」)は、すべての」
どういうわけか、このような:これに基づき
@article = Article.find(params[:id])
@article_list = Article.order(:client).all
index = @article_list.index(@article)
あなたは十分シンプル前回と次の記事を計算することができます。これが賢明な解決策であるかどうかは分かりませんが、うまくいくはずです。
は、モデル内の2つのスコープを持っているあなたは
次の記事ような何かを
(現在の記事インデックスが1であると言う)可能性が検証とclass Article < ActiveRecord::Base
scope :order_by_id, lambda {
{:order => "id desc"}
}
scope :order_by_client, lambda {|client_id|
{:order => "client_id desc"}
}
end
と
@articles = Article.order_by_client(1).order_by_id
@articles(curr ent_index + 1)@articles(current_index + 1).nil? @articlesない限り(CURRENT_INDEX - 1).nil -
前の記事は
@articles(1 CURRENT_INDEX)(現在の記事インデックスが2であると言いますか)?
** haventは、コードを試みたが、あなたはすでに、あなたが「Article.orderによって返される配列内のこの記事の位置を取得するには「インデックス」を使用することができshowアクションのための記事をお持ちの場合は
これはうまく見える - ありがとう。 3行目で 'index = @ article_list.index(@article)'を意味すると思いますか? – Edward
はい、確かです。申し訳ありませんがタイプミス。あなたがあなたのビューでこれを使いたいのであれば@indexである可能性があります。 –
'next = @article_list [index + 1]'ありがとう - それは素晴らしいです。 – Edward