我在index
的{{1}}行动中有以下内容:
posts controller
在我看来像:
@posts = Post.all.order("created_at DESC")
我希望按天分组帖子,然后将日期分组如下:
<% @posts.each do |post| %>
<%= post.title %>
<% end %>
我只想把日期和日期放在单独的div中:
Tuesday (date)
Sports
World
Politics
Monday (date)
Sports
Catering
我正在使用PostgreSQL。
(<div>
<%= day %>
</div>
<div>
<%= date %>
</div>)
$("#post_table").html("<%= escape_javascript(render('posts/post')) %>")
$modal.modal("hide");
before_action :all_posts, only: [:index, :new, :create]
def create
@post = Post.new(post_params)
@post.user_id = current_user.id
respond_to do |format|
if @post.save
format.html { redirect_to root_path }
format.js
flash[:notice] = "Successfully created post."
else
format.html { render action: 'new' }
format.js
end
end
end
private
def all_posts
@posts = Post.all.order("created_at DESC")
@post_groups=@posts.group_by{|post| [post.created_at.wday,post.created_at.to_date]}
end
更新工作正常,但每当创建新帖子时,刷新部分都无法正常工作。它刷新但我在重新加载我的网站后可以看到新帖子。
由于
答案 0 :(得分:1)
控制器
@post_groups=Post.order('created_at DESC').group_by{|post| [post.created_at.wday,post.created_at.to_date]}
查看
<% @post_groups.each do |group,posts| %>
<%day=group[1].strftime("%A")%>
<%date=group[1].to_s%>
<div>
<%=day%>
</div>
<div>
<%=date%>
</div>
<br>
<%posts.each do |post|%>
<div><%=post.title%></div>
<%end%>
<hr>
<% end %>
在这里,我按工作日对所有帖子进行分组,然后将它们与日期分组。
这将返回所有分组数据的hash
。 hash key将是一个格式数组
[weekday,date]
和此键的值将是一组帖子来到这个组,我在视图中显示它们。
您可以根据自己的要求调整视图以改变样式。