如何根据组合框调用控制器操作

How can I call a controller action based on combo box?

本文关键字:调用 控制器 操作 组合 何根      更新时间:2023-09-26

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

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

我想按组合框进行过滤,其中包含所有状态(已启动、已关闭、已赢得......etc )所以当用户更改过滤器时,我也想通过将状态提交给控制器来更改表数据,控制器将根据状态过滤掉投标。我该怎么做?使用Ajax怎么样(因为唯一改变的是表数据而不是整个页面)?

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

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

任何建议也将不胜感激。

通过 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 

所以我会检查宝石符号化,以帮助您解决您的枚举https://github.com/nofxx/symbolize

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