我正在使用Ruby on Rails 3.2.2和ruby 1.9。
我有一个模型招标,其中一个属性是状态。在索引页面上,第一次加载时,它会根据已登录的用户公司显示招标数据(它还会显示状态)。
我希望有一个按组合框过滤,它将包含所有状态(已启动,已关闭,赢取..等等),因此当用户更改过滤器时,我想通过提交状态来更改表数据控制器将根据状态过滤掉投标。我怎样才能做到这一点?如何使用Ajax(因为唯一改变的是表数据而不是整个页面)?
除了状态之外,我还有不同的过滤选项,例如bid_amount(也是其中一个属性)。如何将bid_amount过滤器按数据与状态组合(即,如果用户想要显示出价金额为b / n 10,000-100,000的已关闭状态)。在控制器上编写查询时我不会有问题,但我不知道如何在视图中使用它。
由于ruby没有像Java这样的Enum,我还从模型类中的数组加载这些状态。这是一个很好的方式吗?
任何建议也将不胜感激。
答案 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值。