Rails根据用户输入显示表单

时间:2013-05-28 01:39:20

标签: 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 =''

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

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

1 个答案:

答案 0 :(得分:1)

好的,我们假设你列出了我们的发票模型的结果---你想按月过滤。

= form_tag url: invoices_path do
  = select_tag :month, month_select, prompt: true
  = submit_tag "Filter"

然后在你的invoices_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