タイトルのように - 私はその月に行われたすべてのブログ投稿を表示するリンクを作成しようとしています。私は彼らのような示さたいアーカイブインデックスページでRails - 月の投稿へのリンクをcreated_at月間で表示します
:私はポストへの応答を使用
ul {
list-style-type: circle;
}
li {
display: block;
}
<h3>2016</h3>
<ul>
<li>October</li>
<li>September</li>
<li>Etc.</li>
</ul>
<h3>2015</h3>
<ul>
<li>Same deal here</li>
</ul>
は、それはインデックスページで正しく表示するために取得するhereを発見しました(今のところ数カ月だけ)。しかし、ある月のリンクをクリックすると、すべての投稿が表示されます。 URLは7月のセクションではhttp://localhost:3000/posts?month=July+2016となっていますが、すべての投稿が表示されています。
ここに私のスニペットがあります。私は上記の答えから私のニーズに合わせて少し変更しました。
インデックス:
<% @posts_by_month.each do |m, p| %>
<div class="col-md-9">
<ul>
<li><%= link_to m, posts_path(:month => m) %></li>
</ul>
</div>
<div class="col-md-3">
</div>
<% end %>
archive_controller:私はpost_controllerかないでいることを入れているかどう
def index
@posts_by_month = Post.all.order(created_at: :desc).group_by { |post| post.created_at.strftime("%B %Y") }
if params[:month && :year]
date = Date.parse("1 #{params[:month]}")
@arch_posts = Post.where(publish: true).where(:created_at => date..date.end_of_month).order(created_at: :desc)
else
@arch_posts = Post.all
end
end
私は確認されませんでした。私は周りのものをシャッフルしようとしましたが、nothingsは働いていました。ここに私のpost_controller指数はケースにあります:
def index
if params[:search].present?
@posts = Post.matching_title_or_content(params[:search]).page params[:page]
else
@posts = Post.all.order(id: :desc).page params[:page]
end
@notif_count = Notification.where(notifiable_type: 'Visitor').count + Notification.where(notifiable_type: 'Comment').count
@mess_count = Message.where(status: false).count
@to_approve_count = Comment.where(status: false).count
end
私はルビーに新たなんだので、任意の入力は大歓迎です。ありがとう!
月または@ arch_postsの投稿を返すには '@ posts_by_month'が必要ですか? –
@posts_by_monthと思います。私はちょっとそれを働かそうとしているいくつかの異なるものをつなぎ合わせた。 – TonyaL