2011-05-19 47 views
2

在我的時間控制器的索引操作中,我希望能夠在顯示的小時之間切換。 我正在使用calendar_for表格,並在日曆中顯示我的rails應用程序的不同用戶的跟蹤時間(小時)。 由於我使用的是一個相當複雜的日曆結構,裏面有一些計算,我不知道如何將其提取到一個部分,所以我想要在select_tag中觸發的onchange事件使用不同的參數重新加載索引操作。Rails的select_tag onchange動作沒有Ajax?

我試圖

<% form_for :hours, :url => { :action => "index" } do |f| %> 
    <%= select_tag :user_id, options_from_collection_for_select(User.find(:all), :id, :name), 
    { :onchange => "this.form.submit();"} %> 
<% end %> 

但是這給我帶來新的/表單視圖(像我想添加一個新的記錄)?還網址只是表明/hours

任何幫助,將不勝感激....

我基本上要的是改變了選擇菜單的URL看起來像/hours?user_id=<id from select_tag>

感謝

+0

一旦你提交表單,無論如何,表單元素散列應提交給你的控制器。你現有的代碼似乎很好。我想你所需要做的就是在你的控制器中,用params [:user_id]訪問user_id並處理它並重定向到你想要的任何頁面。希望能幫助到你。 – 2011-05-19 11:04:36

回答

0

後我不太理解你爲什麼需要一個表單?從我看來,最簡單的方法是這樣的(假設你使用jquery)更新application.js文件:

$("#selector_id").change (function() { 
    window.location.replace('/hours?'+this.id); 
}); 

雖然有可能是一些漂亮的軌道幫手這一點。

+0

酷!謝謝......這很好地解決了我的問題。我必須將其更改爲window.location.replace('/ hours?user_id ='+ $(this).val());雖然... – tmaximini 2011-05-19 11:59:30