select_tag,使用onchange将所选值传递给控制器​​方法

时间:2010-10-06 12:41:06

标签: ruby-on-rails ruby

我使用will_paginate插件实现了分页。

我想要一个下拉列表,用户可以在其中显示他们在每个“页面”上显示的记录数量。他们的想法是,一旦他们选择了某些内容,当前屏幕就会根据显示的调整记录数进行刷新。

我的代码没有触发刷新......我做错了什么?

下拉列表:

<%= select_tag :paginate_size, options_for_select([['Disp 5', 5],['Disp 10',10],['Disp: 20', 20]]), :onchange => remote_function(:url => {:action => :show_my_entries, :page_size => "this.options[this.selectedIndex].value"} )%>

在控制器show_my_entries函数中:

@entries_paginate = Entry.paginate :page => params[:page], :order => 'title', :per_page => params[:page_size], :conditions => "publication_id = " + session[:publication_id].to_s

1 个答案:

答案 0 :(得分:1)

我认为你需要将params传递给:show_my_entries使用:with,类似这样:

<%= select_tag :paginate_size, options_for_select([['Disp 5', 5],['Disp 10',10],['Disp: 20', 20]]), :onchange => remote_function(:url => {:action => :show_my_entries }, :with => "'paginate_size='+value" )%>

注意remote_function的第二个参数。