2011-05-19 107 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