Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 基于用户输入显示表单的Rails_Ruby On Rails - Fatal编程技术网

Ruby on rails 基于用户输入显示表单的Rails

Ruby on rails 基于用户输入显示表单的Rails,ruby-on-rails,Ruby On Rails,我正在创建一个月度报告,要求用户输入一个月,然后显示该月的报告。本月我有以下资料: = simple_form_for @month, html: { :class => 'form-inline' } do |f| = f.input :month, label: 'Report Month', collection: month_select, input_html: {class: 'span2'} 我只是将月份设置为@month='' 月份不在我的数据库中,但我有一个过滤器编码,

我正在创建一个月度报告,要求用户输入一个月,然后显示该月的报告。本月我有以下资料:

= simple_form_for @month, html: { :class => 'form-inline' } do |f|
= f.input :month, label: 'Report Month', collection: month_select, input_html: {class: 'span2'}
我只是将月份设置为@month=''

月份不在我的数据库中,但我有一个过滤器编码,根据日期字段按月过滤数据库。我只希望用户能够选择月份并查看结果。现在,所选内容不会保留在@month变量中。我想我要么需要在我的控制器中实现一个方法来重新提交当月过滤的表单,要么使用javascript。我也不知道怎么做


如何设置表单以允许输入日期,然后显示该日期的报告

好的,那么让我们假设您列出了发票模型的结果——并且您希望按月进行筛选

= form_tag url: invoices_path do
  = select_tag :month, month_select, prompt: true
  = submit_tag "Filter"
然后在您的发票_controller.rb中:

def index
  @invoices = Invoice.by_month(params[:month])
end
在您的invoice.rb型号中:

def self.by_month(selected_month=nil)
  if month
    where(month: selected_month)
  else
    scoped
  end
end

简单表单通常要求存在ActiveModel对象。你知道那是什么吗?或者,你想要一个非简单表单解决方案吗?非简单表单很好。我只想选择一个月,将该月分配给一个变量,并显示在该月过滤的报告-我希望选择和报告最好在同一页上-因此用户可以选择三月,并查看三月或任何月份的总数