2013-05-28 43 views
0

我正在創建一個月度報表,要求用戶輸入一個月,然後顯示該月的報表。我有以下的拿到一個月:根據用戶輸入顯示錶單的滑軌

= 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。我不知道怎麼做

如何設置表單以允許輸入日期然後顯示該日期的報告?

+0

簡單形式通常需要一個對象加載ActiveModel爲存在。你知道那是什麼嗎?或者,你想要一個非簡單形式的解決方案嗎? –

+0

非簡單形式很好所有我想要做的是選擇一個月份,將月份分配給一個變量並顯示在該月份過濾的報告 - 我希望選擇和報告在同一頁面上 - 因此用戶可以選擇行軍和看到三月或其他的總數 – tbrooke

回答

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 
相關問題