如何基于combobox调用控制器操作?

我正在使用Ruby on Rails 3.2.2和ruby 1.9。

我有一个模型招标,其中一个属性是状态。 在索引页面上,第一次加载时,它会根据已登录的用户公司显示招标数据(它还会显示状态)。

我希望有一个combobox的filter,它将包含所有状态(Initiated,Closed,Won ..etc),所以当用户更改filter时,我想通过将状态提交给控制器来更改表​​数据这将根据状态过滤掉投标。 我怎样才能做到这一点? 如何使用Ajax(因为唯一改变的是表数据而不是整个页面)?

除了状态之外,我还有不同的过滤选项,例如bid_amount(也是其中一个属性)。 如何将bid_amountfilter按数据与状态组合(即,如果用户想要显示出价金额为b / n 10,000-100,000的已关闭状态)。 在控制器上编写查询时我不会有问题,但我不知道如何在视图中使用它。

由于ruby没有像Java这样的Enum,我还从模型类中的数组加载这些状态。 这是一个很好的方法吗?

任何建议也将不胜感激。

通过ajax执行事务的rails方式是使用:remote => true。 一个简单的搜索将为您提供相当多的教程。

非Ajax解决方案可能是这样构建的。

def index if params[:status] || params[:bid_amount] # Tailored Query else # Generic Query end end 

视图

  <%= form_tag index_route_path do %> # Statuses that are pulled form symbolize via Model # Bid Amount Boxes <% end %> # Display query results 

另外,我会检查gemSymbolize,以帮助您使用您的Enums https://github.com/nofxx/symbolize

它对我来说仍然不是很清楚我们想要做什么。 如果您希望根据用户设置状态填充您的出价金额框。 您可以触发表单提交onChange,并使用帮助程序填充您的bid_amount值。