У меня есть пул базы данных для регистрации, содержащей такие атрибуты, как электронная почта, ip, create_at и т. Д., И я хочу быть в курсе динамического поиска на основе количества часов в Time.now, например, поиск записи записи 2 часа назад, без жесткого кодирования тех часов, но мое решение не работает и болен. Как мне этого добиться? Ниже беспорядок, который я сделал:
traffics_controller.rb
class TrafficsController < BaseController
def show
@search_term = params[:search_term]
@traffic =
if params[:search_term] == 'time_calculated'
SignupHistory.time_calculated
else
SignupHistory.all
end
end
end
модель
class SignupHistory < ActiveRecord::Base
def self.time_calculated
where('created_at > ?', Time.now - "#{time_difference}".hour)
end
end
show.html.slim
# search form rows
.row
.panel.panel-primary
.panel-heading
span = t('.search')
.panel-body
= form_tag admin_statistic_traffics_path, method: :get
.col-xs-4 = text_field_tag :search_term, @search_term
.col-xs-12.col-xs-offset-1 = submit_tag 'Search'
# Table rows
.row
.panel.panel-primary
.panel-heading
span = t('admin_header.traffics')
.panel-body
= table_for(@traffic, class: 'table table-condensed table-hover') do |t|
- t.column :id, 'S/N', class: 'col-xs-1'
- t.column :email, 'Email', class: 'col-xs-2'
- t.column :created_at, 'Signed in Date', class: 'col-xs-3' do |x|
= x.created_at.strftime('%B %e, %Y at %I:%M %p')
- t.column :login_location, 'Login Location', class: 'col-xs-3'
Я хочу иметь возможность поставить 1 в поле поиска и выполнить поиск, чтобы извлечь записи в таблице, которая была создана 1 час назад с использованием поля created_at
. Но это не работает. Любая помощь будет оценена.