我的搜索字段包括姓名,电子邮件和created_at。我添加了名称和电子邮件字段的搜索。对于日期字段,我添加了提示文本"日期应该是MM-DD-YYYY格式"我希望用户只能以这种格式输入日期。如果以该格式输入日期,那么我想显示该日期的所有记录。我的搜索结果以字符串格式显示,例如" 12-22-2015"。我想要显示其created_at字段为this的所有日期。对于姓名和电子邮件,我的查询为:@messages = Message.includes(:user).select('messages.*, users.name').where("users.name ilike ? OR messages.to ilike ? " ,"%#{@query}%", "%#{@query}%").paginate(:page => params[:page], :per_page => 5)
。需要修改上面的created_at字段查询。
答案 0 :(得分:0)
尝试以下方法......
@messages = Message.includes(:user).select('messages.*, users.name').where("users.name ilike ? OR messages.to ilike ? OR messages.created_at like ? " ,"%#{@query}%", "%#{@query}%", Date.parse("%#{@query}%", '%MM-%DD-%YYYY')).paginate(:page => params[:page], :per_page => 5)
答案 1 :(得分:0)
尝试以下查询以显示相同的日期记录
@messages = Message.includes(:user).select('messages.*, users.name').where("users.name ilike ? OR messages.to ilike ? OR date(messages.created_at) = ? " ,"%#{@query}%", "%#{@query}%", "#{@query.to_date}").paginate(:page => params[:page], :per_page => 5)