在轨道上的红宝石中搜索日期字段

时间:2016-01-28 09:45:31

标签: ruby-on-rails-3.2

我的搜索字段包括姓名,电子邮件和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字段查询。

2 个答案:

答案 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)