Rails:单击下拉选项时提交(通过 AJAX)

2024-01-02

当选择下拉框的选项时,自动提交 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, [['none', 0], ['admin', 9]], {}, :onchange => 'this.form.submit()' %>
<% end %>

另一种方法是这样的,并且会避开表单生成器(这可能有一些语法错误):

<%= select_tag(:permissions, [['none', 0], ['admin', 9]], {:onchange => "#{remote_function(:url  => permissions_path(:story_id => story,
             :with => "'permission='+value")}"})

我个人更喜欢前者。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Rails:单击下拉选项时提交(通过 AJAX) 的相关文章

随机推荐

  • TypeScript 中关联对象数组的接口

    我有一个像这样的对象 var obj key1 apple key2 true key3 123 key n So obj可以包含任意数量的命名键 但值必须全部是字符串 布尔值或数字 我如何声明类型obj作为 TypeScript 中的接口
  • 在 Python 运行时创建对象

    当涉及到在运行时创建对象时 我在理解 OOP 概念时遇到了问题 我研究过的所有教育代码都定义了特定的变量 例如 Bob 并将它们分配给一个新的对象实例 鲍勃 人 我现在无法理解的是如何设计一个在运行时创建新对象的模型 我知道我的措辞可能有错
  • 如何计算日出和日落时间(matlab)?

    我需要在 Matlab 中计算日出和日落时间 但我找不到正确 且简单 的方法来做到这一点 我需要得到与以下内容相同的结果 https www esrl noaa gov gmd grad solcalc https www esrl noa
  • 实现 IEnumerable 时遇到问题

    我正在尝试编写自己的 简单的 List 实现 这就是我到目前为止所做的 using System using System Collections Generic using System Linq using System Text na
  • 限制直接 url 下载图像

    我不久前问过这个问题并得到了我认为可行的答案 但我仍然遇到问题 也许这是我做错的事 但我仍然没有这个权利 我想限制对整个目录的访问 该目录中包含图像和 pdf 文件 我需要创建 pdf 文档的链接并将图像嵌入到锚标记中 有人告诉我为此使用标
  • 将多个属性元数据添加到工作流活动中的依赖属性

    我正在 Windows 工作流中构建许多自定义活动 我需要添加一个 DependencyProperty 它可以list该属性的多个值 用户可以在使用活动时选择这些值 例如对或错 我知道如何使用 PropertyMetadata 简单地传递
  • 使用 JavaScript 循环遍历日期范围

    给定两个Date 对象 其中一个小于另一个 我如何在日期之间每天循环 for loopDate startDate loopDate lt endDate loopDate 1 这种循环会起作用吗 但是如何向循环计数器添加一天呢 Thank
  • ngOnInit 中未定义角度异步输入?

    我有一个父组件通过 API 将数据传递给子组件 如下所示 ts private loadData this data this apiService getData html
  • 在 Scala 中实现多级 Java 接口

    我有以下层次结构java for my interface public interface Identifiable
  • 在 ng-click 上调用超出范围的 javascript 函数

    我有一个 javascript 库 其中包含许多有用的函数 我在网站上使用它们来执行各种操作 我知道我无法通过 ng click 访问这些函数 因为这些函数超出了范围 有没有一种方法可以访问它们 而无需声明仅调用库中函数的作用域函数 Her
  • 如何从合并中排除文件?

    我刚刚开始了解 git 目前正在考虑合并 假设我有一个主分支 并创建一个名为子分支的分支 我在子分支上工作并更改了一些文件 现在我想将这个子分支合并到主分支中 git merge child 然而 子分支中有一些文件 也在主分支中 我不想合
  • swig、python 和 wchar_t 问题

    我是 Python C 绑定 swig 的新手 并且已经尝试解决这个问题有一段时间了 我有一个外部 C 库 Example c 我想从 Python 调用它 我阅读了 Swig 教程并能够立即生成包装器 现在的问题是 当我调用 API 时
  • 如何在最新版本的phonegap 2.9.1中找到cordova.jar?

    我下载了最新版本的phonegap 2 9 1 zip 文件 但它不包含 cordova jar 当我在 google 上搜索时 我得到了答案 例如将文件夹导航到 lib android framework 目录和 fire 命令 andr
  • 使用 iPhone X 的自动调整大小蒙版迁移项目

    我们有一些遗留项目仍在使用自动调整大小遮罩 在 iOS 11 和 iPhone X 之前一切都工作正常 随着安全区域布局指南的引入 支持 iPhone X 的最佳解决方案是什么 我们可以将所有带有自动调整大小蒙版的界面转换为使用自动布局 考
  • Jinja 在 HTML 中渲染文本并保留换行符

    我有一个像这样的简单表格 class RecordForm Form notes TextAreaField Notes 我将数据记录为三段 如下所示 para1 para2 para3 在模板中 我想以只读方式查看该记录的内容 不可编辑的
  • 强制 Tampermonkey 延迟运行/执行脚本

    如何强制 Tampermonkey 在 AJAX 加载每个文档后运行 执行脚本 我希望访问脚本中的这些元素并更改它们 但是 尽管我设定了 run at to document end在设置页面中 它在文档未完全加载时执行 而且 它发生在这个
  • 如何解决 Android Studio 中的意外顶级异常

    我有两个项目共享相同的aidl 文件 在第一个项目中 构建在 Eclipse 和 Android Studio 中运行完成 在第二个项目中 构建在 Eclipse 中运行完成 但在 Android Studio 中我看到 Error Tra
  • 如何在水晶报表中编辑现有查询

    我只能在 数据库 gt 显示 SQL 查询 中看到 SQL 查询 如何在水晶报表中编辑它 您正在寻找Edit Command在数据库专家中 请参见下面的屏幕截图
  • 从 Visual Basic 6 中的所有对象上移除焦点

    是否有一种方法可以让用户单击表单本身 并在此过程中从当前拥有它的任何对象 文本框 组合框等 中删除焦点 基本上 焦点可以同时从所有事物上移开吗 将焦点设置到表单本身不起作用 我想过做旧的 将占位符按钮隐藏在另一个对象后面 的技巧 但我真的不
  • Rails:单击下拉选项时提交(通过 AJAX)

    当选择下拉框的选项时 自动提交 AJAX 表单的最简单 最优雅的方法是什么 我正在创建一个管理页面 管理员可以在其中修改用户权限 其中 权限 存储为整数 并且我希望 权限 字段成为一个下拉框 当管理员单击他希望用户拥有的选项 这是我目前正在