0

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

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

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

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

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

任何建议也将不胜感激。

4

1 回答 1

1

Rails 通过 ajax 执行事物的方式是使用 :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 

另外我会检查 gem Symbolize,以帮助您解决枚举 https://github.com/nofxx/symbolize

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

于 2012-07-01T05:18:25.510 回答