当选择下拉框选项时,最简单和最优雅的方式自动提交
AJAX表单?我正在创建一个管理员页面,其中管理员可以修改用户权限(其中“权限”以整数形式存储),我希望“权限”字段是一个下拉框,当管理员自动提交并更新点击他希望用户拥有的选项.
这是我目前正在查看的这个简单版本.我需要知道将其转换为远程表单的最佳方法,当单击某个选项时,该表单将自动提交.
随意指出任何切向的建议或其他任何东西…我相对来说比较新的Rails,只是达到了我可以编写代码而不经常地引用别人的工作.
<!-- This is the "index" view,by the way. --> <% for membership in @story.memberships %> <% form_for membership do |f| %> <%= f.select :permissions,[['none',0],['admin',9]] %> <% end %> <% end %>
解决方法
有几种方法来处理这个问题.当然,观察场方法是一个,但是你也可以使用一个简单的javascript或一个remote_function来实现:
这里是简单的JS方法:
<% remote_form_for membership do |f| %> <%= f.select :permissions,9]],{},:onchange => 'this.form.submit()' %> <% end %>
另一种方式将是这样的,并且将避开表单构建器(并且这可能有几个语法错误):
<%= select_tag(:permissions,{:onchange => "#{remote_function(:url => permissions_path(:story_id => story,:with => "'permission='+value")}"})
我个人喜欢前者.