如何根据组合框调用控制器操作
How can I call a controller action based on combo box?
我正在使用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值。
相关文章:
- 如何在单击复选框后调用控制器方法
- 未调用控制器
- 在Angular中呈现DOM对象时,如何调用控制器中指定的函数
- 调用控制器后Ajax抛出错误
- 如何在使用$timeout进行指令渲染后调用控制器方法
- AngularJs 从指令中的另一个调用控制器
- 有没有办法从 javascript 函数调用控制器操作
- Angularjs:路由后如何调用控制器函数
- MVC 下拉列表更改事件未正确调用控制器中的操作
- Angularjs指令调用控制器函数
- ng重复调用控制器功能的次数太多
- 如何在angular js中从指令调用控制器函数
- 使用ng-include调用控制器时AngularJS路由解析
- Angularjs将函数从控制器传递到指令(或从指令调用控制器函数)-带参数
- 通过javascript调用控制器方法
- 一键点击首先调用javascript,执行验证,然后调用控制器方法
- 如何使用ajax从javascript调用控制器函数
- 角度ng重复支持从0到n重复,而不调用控制器
- 在视图中未使用Javascript调用控制器操作
- 从AngularJS中的视图调用控制器函数