【发布时间】:2016-01-10 16:19:12
【问题描述】:
我正在使用bootstrap-datepicker-rails gem 来允许我的用户选择一个日期范围,以便他们可以在该给定范围内提取报告。我相信我已经正确设置了它,但是,看起来参数并没有传递到查询中。我做错了什么?
这些是正在传递的参数(可能是日期格式吗?):
Parameters: {"utf8"=>"✓", "authenticity_token"=>"6ilji+8uk2/6F115tYjtwlw1JSU0KNqqUc1O26GG4Uw=", "startdate"=>"10/01/2015", "enddate"=>"10/03/2015", "commit"=>"Update"}
这就是我注意到日志中没有传递范围的地方:
Report Load (0.4ms) SELECT "reports".* FROM "reports" WHERE "reports"."deleted_at" IS NULL AND "reports"."company_id" = $1 AND ("reports"."created_at" BETWEEN NULL AND NULL) ORDER BY "reports"."created_at" DESC LIMIT 30 OFFSET 0 [["company_id", 1]]
reports/index.html.erb
<%= form_tag reports_index_path, method: :post, :class => "form-inline" do %>
<div class="form-group">
<%= text_field_tag(:start_date, ((@reports.nil? || @reports.empty?) ? '' : @reports.last.created_at), class: "form-control", name: "startdate", data: {"behaviour" => "datepicker"}) %>
<p class="text-center">to</p>
<%= text_field_tag(:end_date, ((@reports.nil? || @reports.empty?) ? '' : @reports.first.created_at), class: "form-control", name: "enddate", data: {"behaviour" => "datepicker"}) %>
</div>
<br/>
<br/>
<%= submit_tag "Update", class: "update-button" %>
<% end %>
controllers/reports_controller.rb
class ReportsController < ApplicationController
def index
@company = current_user.company
@locations = if @company
current_user.company_locations.order(:name)
else
[]
end
unless @company.nil? || @company.reports.empty?
if request.post?
@reports = @company.reports.where(created_at: report_params[:start_date]..report_params[:end_date]).order(created_at: :desc).paginate(page: params[:page], :per_page => 30)
else
@reports = @company.reports.order(created_at: :desc).paginate(page: params[:page], :per_page => 30)
end
end
end
private
def report_params
params.permit(:start_date, :end_date)
end
end
【问题讨论】:
-
您收到的错误信息是什么?
标签: javascript jquery ruby-on-rails activerecord datepicker