【问题标题】:rails select_month default or paramsrails select_month 默认值或参数
【发布时间】:2019-07-25 01:39:18
【问题描述】:

我正在创建一个按月和年过滤付款的选项。它的工作原理如下:

如何在select_monthselect_year 字段中显示当前选定的参数?

inbound_payments_controller.rb:

def index
  if params.has_key?(:select)
    start_date = (params[:select][:year]+"-" + params[:select][:month]+"-"+Date.today.day.to_s).to_datetime.beginning_of_month
    end_date = start_date.end_of_month
    @inbound_payments = InboundPayment.where("created_at BETWEEN ? AND ?",start_date, end_date)
  else
    @inbound_payments = InboundPayment.where("created_at BETWEEN ? AND ?", Time.now.beginning_of_month, Time.now.end_of_month)
  end
end

在 inbound_payments/index.haml 中,我有一个 select_month 助手:

- if params.has_key?(:select)
  = params[:select][:month]
  = params[:select][:year]
= form_tag inbound_payments_path, method: :get do
  = select_month(Date.today, {use_two_digit_numbers: true, prefix: 'select'},{:field_name => 'month', :id => 'start-month'})
  = select_year(Date.today, {:start_year => DateTime.now.year,:end_year => 2030, prefix: 'select'},{:field_name => 'year', :id => 'start-year'})
  = submit_tag("Search", :id=>"button", :class=>"Test", :name=>"submit")

这种方式默认选择current_month,我可以从下拉列表中选择一个月。一切正常。但是,当传递参数并提交表单时,如何在表单中自动选择当前选择的月份和年份?

【问题讨论】:

    标签: ruby-on-rails


    【解决方案1】:

    找到了解决办法!

    控制器:

      if params.has_key?(:select)
        @start_date = (params[:select][:year]+"-" + params[:select][:month]+"-"+Date.today.day.to_s).to_datetime.beginning_of_month
        @end_date = @start_date.end_of_month
        @inbound_payments = InboundPayment.where("created_at BETWEEN ? AND ?",@start_date, @end_date)
      else
        @inbound_payments = InboundPayment.where("created_at BETWEEN ? AND ?", Time.now.beginning_of_month, Time.now.end_of_month)
      end
    

    查看:

      - if params.has_key?(:select)
        = select_month(@start_date, {use_two_digit_numbers: true, prefix: 'select'},{:field_name => 'month', :id => 'start-month'})
        = select_year(@start_date, {:start_year => DateTime.now.year,:end_year => Tenant.current_tenant.created_at.year, prefix: 'select'},{:field_name => 'year', :id => 'start-year'})
      - else
        = select_month(Date.today, {use_two_digit_numbers: true, prefix: 'select'},{:field_name => 'month', :id => 'start-month'})
        = select_year(Date.today, {:start_year => DateTime.now.year,:end_year => Tenant.current_tenant.created_at.year, prefix: 'select'},{:field_name => 'year', :id => 'start-year'})
      = submit_tag("Search", :id=>"button", :class=>"Test", :name=>"submit")
    

    【讨论】:

      猜你喜欢
      • 2014-12-07
      • 1970-01-01
      • 2014-03-30
      • 2012-05-04
      • 1970-01-01
      • 1970-01-01
      • 2012-09-07
      • 2012-08-01
      • 1970-01-01
      相关资源
      最近更新 更多