我试图让我的应用程序提取在特定日期创建的所有帖子。
case meta_type
when "user"
@meta = User.find(params[:user_id])
@meta_title = @meta.username + "'s Posts"
@posts = Post.find(:all, :conditions => { :user_id => @meta.id})
when "category"
@meta = params[:category]
@meta_title = @meta + " Posts"
@posts = Post.find(:all, :conditions => { :category => @meta})
when "date"
@meta = Date.parse(params[:date])
@meta_title = @meta.strftime("%d/%m/%Y") + " Posts"
@posts = Post.find(:all, :conditions => { :created_at => @meta})
end
这是我的看法:
- if @meta
%h2= @meta_title
- if @posts.count > 0
- @posts.each_slice(2) do |slice|
.row
- slice.each do |post|
.col-sm-6
.blog_entry
.img
%h3
%a= link_to post.title, posts_path + '/' + post.id.to_s
= render "blog_meta", :post => post
- else
%p= @user.username + " has no posts."
- else
%h2= "User does not exist."
我得到undefined method 'username' for nil:NilClass
这本身不是问题,但它被过滤到 else 语句的事实是,因为它应该找到那个日期的帖子。
此外,我刚刚通过日期时间意识到,它实际上会寻找在同一时间创建的帖子,而我希望它能够提取当天创建的所有帖子,而不是时间。
有什么建议么?
谢谢