Ruby on rails Rails 3表单,需要更好的设计,可能需要使用ajax
我正在尝试创建一个更新用户角色的页面。我有一个用户控制器和一个名为“admin”的控制器中的方法/操作。管理员定义所做的就是将所有用户存储在@users中。在routes中,资源是users,它有一个集合do,该集合获取:admin 我通过为每个用户创建一个新表单来更新角色,并且在每个用户旁边的每个表单上都有一个保存按钮Ruby on rails Rails 3表单,需要更好的设计,可能需要使用ajax,ruby-on-rails,ajax,ruby-on-rails-3,form-for,Ruby On Rails,Ajax,Ruby On Rails 3,Form For,我正在尝试创建一个更新用户角色的页面。我有一个用户控制器和一个名为“admin”的控制器中的方法/操作。管理员定义所做的就是将所有用户存储在@users中。在routes中,资源是users,它有一个集合do,该集合获取:admin 我通过为每个用户创建一个新表单来更新角色,并且在每个用户旁边的每个表单上都有一个保存按钮 <table> <tr> <th>Username</th> <th>Role</th&g
<table>
<tr>
<th>Username</th>
<th>Role</th>
<th>Update</th>
</tr>
<% @users.each do |user| %>
<%= form_for [user], :user => { :action => "update" } do |f| %>
<tr>
<td><%= user.username %></td>
<td><%= select("user", "role", options_for_select(['member', 'moderator','admin'], user.role) )%></td>
<td><%= f.submit %> </td>
</tr>
<% end %>
<% end %>
</table>
用户名
角色
更新
{:action=>“update”}do | f |%>
这可以工作和更新,但不是很直观。我希望在整个事件之后使用submit按钮,或者使用ajax调用在角色发生更改时更新角色,这样用户就不必担心单击“保存”了
有没有办法避免双重嵌套循环,并可能在不需要更新按钮的地方添加ajax
感谢您的建议和帮助。因此,如果您想使用AJAX,我建议您引入一个类似jQuery的JavaScript库(如果您使用的是大量HTML,可能不是ExtJS)
JQuery内置了AJAX功能。因此,如果您想走AJAX路线,我建议您引入一个类似JQuery的JavaScript库(如果您使用的是大量HTML,那么可能不是ExtJS)
JQuery内置了AJAX功能。您可以做的第一件事是将表单更改为使用AJAX进行更新的远程表单。您可以在rails中进行一次更改
{:action=>“update”},:remote=>true do | f |%>
这里的效果是,每个用户的“提交”按钮提交表单更改,而不会使您离开页面
接下来,如果您想完全删除submit按钮并让它在更改时提交,那么可以使用一些非常简单的jQuery来侦听输入字段上的更改,并在发生更改时提交父表单
为所有对象创建一个提交按钮可能更困难。据我所知,您必须将所有对象的字段打印到一个表单中,可能会将表单发送到另一个操作,然后在表单中有更改的所有用户之间循环,并分别调用更新操作。不过,可能有一个更简单的方法 您可以做的第一件事是将表单更改为使用ajax进行更新的远程表单。您可以在rails中进行一次更改
{:action=>“update”},:remote=>true do | f |%>
这里的效果是,每个用户的“提交”按钮提交表单更改,而不会使您离开页面
接下来,如果您想完全删除submit按钮并让它在更改时提交,那么可以使用一些非常简单的jQuery来侦听输入字段上的更改,并在发生更改时提交父表单
为所有对象创建一个提交按钮可能更困难。据我所知,您必须将所有对象的字段打印到一个表单中,可能会将表单发送到另一个操作,然后在表单中有更改的所有用户之间循环,并分别调用更新操作。不过,可能有一个更简单的方法 当我这样做的时候,我似乎无法让路线正常运行。我从终端-ActionController::RoutingError(没有路由匹配项“/users/3”)中得到一个错误。我的控制器中有一个update命令,它以另一种方式工作。看看这是否有帮助:不是真的。我将:url=>users\u路径和:controller=>“users”以及:action=>“update”传递到表单中,用于。。。我的终端为…返回已启动的POST“/用户”。。。设计处理::注册控制器#创建为JS我不确定为什么它会转到注册控制器我这样做时,似乎无法让路线正常工作。我从终端-ActionController::RoutingError(没有路由匹配项“/users/3”)中得到一个错误。我的控制器中有一个update命令,它以另一种方式工作。看看这是否有帮助:不是真的。我将:url=>users\u路径和:controller=>“users”以及:action=>“update”传递到表单中,用于。。。我的终端为…返回已启动的POST“/用户”。。。通过designe::RegistrationController处理#创建为JS我不确定为什么它会转到RegistrationController