1

routes.rb

root :to => 'articles#index'

マイクロポスト モデル:

class Micropost < ActiveRecord::Base
  attr_accessible :content, :user_id
  belongs_to :user
  validates :user_id, presence: true
  validates :content, presence: true, length: { maximum: 100 }
end

記事のモデル:

class Article < ActiveRecord::Base
  attr_accessible :content, :title

  validates :title, :presence => true,
                :length => { :minimum => 2 }  
  belongs_to :user
end

そして、articles_controller.rb のインデックス define_method

def index
  @articles = Article.paginate(:page => params[:page], 
                       :per_page => 5,
                       :order => 'created_at DESC')


  respond_to do |format|
    format.html 
    format.json { render json: @articles }
  end
end

article_controller#index と index ビューの書き方はわかりませんが。

4

2 に答える 2

0

質問は正確には何ですか?

すべての記事を 1 つのページにまとめたい場合は、代わりに paginate を使用しないでください。

Article.all

すべての記事を created_at タイムスタンプの降順で並べ替える場合:

Article.order("created_at DESC")

それとも、別の順序で 2 番目のページが必要でしたか? 次に、必要な順序をアクションに伝えるパラメーターを取る新しいルートを作成します。そして、コントローラー内:

if(params[:order_by_created_time])
  # ...
else
  # ... 
end

respond_to do |format|
  # ...
end

ビューがすでに機能している(そしてマイクロポストを表示している) 場合:

def index
  @articles = Article.order("created_at DESC")

  respond_to do |format|
    format.html 
    format.json { render json: @articles }
  end
end
于 2013-03-05T14:55:01.007 に答える
0

コードが機能することを考えると、単純に変更できるはずupdated_atですcreated_at

def index
  @posts = Post.paginate(:page => params[:page], 
                       :per_page => 5,
                       :order => 'created_at DESC')

  respond_to do |format|
    format.html 
    format.json { render json: @posts }
  end
end
于 2013-03-05T14:56:38.493 に答える