如何基于组合框调用控制器操作?

时间:2012-07-01 04:45:31

标签: javascript ruby-on-rails ajax ruby-on-rails-3 combobox

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

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

我希望有一个按组合框过滤,它将包含所有状态(已启动,已关闭,赢取..等等),因此当用户更改过滤器时,我想通过提交状态来更改表数据控制器将根据状态过滤掉投标。我怎样才能做到这一点?如何使用Ajax(因为唯一改变的是表数据而不是整个页面)?

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

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

任何建议也将不胜感激。

1 个答案:

答案 0 :(得分:1)

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

非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

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