【问题标题】:Rails datepicker ActiveRecord Lookup not workingRails 日期选择器 ActiveRecord 查找不起作用
【发布时间】: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


【解决方案1】:
  1. 您已将表单字段命名为 startdateenddate,但您的控制器正在寻找 start_dateend_date。请进行匹配,如果这样可以解决问题,请告诉我们。

  2. 我认为@reports.blank? 只需一个命令即可处理(@reports.nil? || @reports.empty?)

【讨论】:

  • 伙计,最小的疏忽...不错!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-04
  • 2014-11-25
  • 2017-09-29
  • 1970-01-01
  • 2012-10-24
  • 2016-03-16
相关资源
最近更新 更多