Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/422.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 选中此复选框可在rails中切换管理_Javascript_Ruby On Rails_Ruby_Ajax_Ruby On Rails 5 - Fatal编程技术网

Javascript 选中此复选框可在rails中切换管理

Javascript 选中此复选框可在rails中切换管理,javascript,ruby-on-rails,ruby,ajax,ruby-on-rails-5,Javascript,Ruby On Rails,Ruby,Ajax,Ruby On Rails 5,我有一个父表,其中有admin和superadmin字段。超级管理员可以将其他父级指定为管理员或超级管理员。我希望在父项列表前面有一个复选框,显示如果选中任何复选框,则表明特定父项是admin或superadmin,如果未选中任何复选框,则表明特定父项既不是admin也不是superadmin。superadmin如何通过取消选中该复选框将该特定父项分配或删除为admin或superadmin复选框。请帮忙 更新 <td><%= check_box_tag 'admin',

我有一个父表,其中有admin和superadmin字段。超级管理员可以将其他父级指定为管理员或超级管理员。我希望在父项列表前面有一个复选框,显示如果选中任何复选框,则表明特定父项是admin或superadmin,如果未选中任何复选框,则表明特定父项既不是admin也不是superadmin。superadmin如何通过取消选中该复选框将该特定父项分配或删除为admin或superadmin复选框。请帮忙

更新

<td><%= check_box_tag 'admin', true, parent.admin, :onclick => 'this.form.submit()'  %></td>
<td><%= check_box_tag 'superadmin', true, parent.superadmin, :onclick => 'this.form.submit()'  %></td>
“this.form.submit()”%>
'this.form.submit()'%>
如何取消选中admin或superadmin,并将该父项分别作为admin或superadmin删除

更新
一种方法可以是这样的:

  • 复选框
    字段更改为

  • 并将其发送到
    routes.rb
    文件

    post'status/parent/:id'=>'parents#change_status'

在控制器中,路径中的
:id
参数[:id]
结束。来自ajax请求的数据也以params散列结束,因此
params[:type]
params[:value]

<%= form_tag update_status_path, :method => 'patch' do %>
 <tbody>
  <% @parents.each do |parent| %>
   <tr> 
    <td><%= link_to parent.email,parent_path(parent) %></td>
     <td><%= check_box_tag "parents[#{parent.id}][admin]", true, parent.admin, class: 'status', data: {id: parent.id, type: 'admin'} %></td>
     <td><%= check_box_tag "parents[#{parent.id}][superadmin]", true, parent.superadmin, class: 'status', data: {id: parent.id, type: 'superadmin'} %></td>
   </tr>
  <% end %>
 </tbody>
routes.rb

get 'main-admin/manage-users', to: 'parents#manage_users'

到目前为止你试过什么?辛斯坦:你能分享一下你被困的地方吗。我无法确定如何选中或取消选中admin和superadmin字段,以便这些字段的布尔值在数据库中更改。@Sinstein请检查上面的更新。如何取消选中以删除或选中以分配,以便数据库中的管理员或超级管理员的布尔值发生更改。
def change_status
   @parent = Parent.find(params[:id])
if @parent.update_attributes(params[:type] => params[:value]) redirect_to parents_path end end
post 'status/parent/:id' => 'parents#change_status'
<%= form_tag update_status_path, :method => 'patch' do %>
 <tbody>
  <% @parents.each do |parent| %>
   <tr> 
    <td><%= link_to parent.email,parent_path(parent) %></td>
     <td><%= check_box_tag "parents[#{parent.id}][admin]", true, parent.admin, class: 'status', data: {id: parent.id, type: 'admin'} %></td>
     <td><%= check_box_tag "parents[#{parent.id}][superadmin]", true, parent.superadmin, class: 'status', data: {id: parent.id, type: 'superadmin'} %></td>
   </tr>
  <% end %>
 </tbody>
def manage_users
    @parents = Parent.search(params[:search]).order(params[:sort]).admins
    @parents_to_update = []
end
get 'main-admin/manage-users', to: 'parents#manage_users'