Rails 3.2.2 不执行 rjs

2023-11-26

我正在关注这本书使用 Rails 进行实用敏捷 Web 开发第 4 版,但我使用的是 Rails 3.2.2,而不是书中推荐的 3.0.5:

~$ ruby -v
ruby 1.9.3p125 (2012-02-16) [i686-linux]
~$ rails -v
Rails 3.2.2

当我使用 AJAX 来重新绘制购物车而不重新加载页面时,我陷入了困境。这是 line_items_controller.rb 中的创建操作:

def create
    @cart = current_cart
    product = Product.find(params[:product_id])
    @line_item = @cart.add_product(product.id)

    respond_to do |format|
      if @line_item.save
        format.html { redirect_to(store_url) }
        format.js 
        format.json { render json: @line_item, status: :created, location: @line_item }
      else
        format.html { render action: "new" }
        format.json { render json: @line_item.errors, status: :unprocessable_entity }
      end
    end
  end

这是我的 RJS 文件 create.js.rjs (位于 app/views/line_items 下):

page.alert('NO PROBLEM HERE')
page.replace_html('cart', render(@cart))

但是,当我单击启动此操作的按钮时:

<%= button_to 'Add to Cart', line_items_path(:product_id => product), :remote => true %>

我在开发日志中收到以下错误:

ActionView::MissingTemplate (Missing template line_items/create, application/create with {:locale=>[:en], :formats=>[:js, :html], :handlers=>[:erb, :builder, :coffee]}. Searched in:
  * "/home/me/src_rails/depot/app/views"
):
  app/controllers/line_items_controller.rb:47:in `create'

如果我将 create.js.rjs 的文件名更改为 create.js.erb,问题就会得到纠正:

Rendered line_items/create.js.erb (0.4ms)

但视图中没有任何反应......甚至没有警报。 我缺少什么? file.js.erb 和 file.js.rjs 有什么区别?


看起来像rjs已经作为默认值删除从 Rails 3.1 开始。您可以通过安装来恢复它prototype-railsgem,但我认为你应该只使用 jQuery,这是新的默认值。

至于你的代码,它不起作用的原因是它是一个rjs模板被解释为.js.erb,这可能只是产生无效的 JavaScript(您应该在浏览器的 JavaScript 控制台中看到错误)。一个rjs模板用于设置page变量,您可以使用它编写 Ruby 代码来操作您的页面。在一个.js.erb模板,它的工作方式更像是在你的.html.erb意见。您编写实际的 JavaScript,并使用嵌入的 Ruby<% %>标签。所以代码中create.js.erb应该看起来像这样:

 alert('NO PROBLEM HERE');
 $('#cart').html("<%= escape_javascript(render(@cart)) %>");
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Rails 3.2.2 不执行 rjs 的相关文章

  • 使用 Node.js 构建网站的最佳实践

    这个问题的答案是社区努力 help privileges edit community wiki 编辑现有答案以改进这篇文章 目前不接受新的答案或互动 我想知道如何使用 Node js 从头开始 开发一个网站 我明白我怎么能possibly
  • 如何使用有角度的材料创建卡片网格?

    我正在尝试使用 ng repeat 创建每行三张卡片的网格 我有一个普通的 javascript 对象数组附加到范围 下面的代码将为每张卡创建一个新行 div div
  • 如何使用 Playwright 使用选择器查找框架 (iframe)

    我有一个小问题 无法找到使用 Microsoft Playwright 框架的答案 根据您可以使用以下代码获取 iframe const frame page frame frame login 但是如何使用选择器来查找 iframe 并与
  • 如何在React Native Android中获取响应头?

    您好 我想在获取 POST 请求后获取响应标头 我尝试调试看看里面有什么response with console log response 我可以从以下位置获取响应机构responseData但我不知道如何获取标题 我想同时获得标题和正文
  • 在 Web 应用程序中显示最新的提交值?

    我有一些 Rails 应用程序 我使用 Git 作为版本控制系统 我使用 GitHub 或 Beanstalk 作为存储库主机 从理论上讲 我想要做的事情非常简单 以某种方式在 Web 应用程序的页脚中显示最新的提交 ID 号 哈希值 这样
  • 按下回车键时不刷新页面

    我遇到了一些问题 只要表单中有输入 回车键就会触发页面刷新 下面的代码 如果按下回车并且文本区域 input 中没有输入任何文本 则不会刷新页面 但是如果按下回车并且 input中有输入或者光标位于文本区域 我不确定是什么触发了它 因为 s
  • JavaScript 中的 Promise 有什么意义?

    一个承诺是一个 可能现在可用 或将来可用 或永远不可用的值 来源 MDN 假设我有一个想要处理图片的应用程序 图片已加载 例如在算法在后台使用它之后 或某种其他类型的延迟 现在我想检查一下图片是否可以在future 通过使用承诺 而不是回调
  • React Router v4 不渲染组件

    React Router v4 渲染组件存在问题 在应用程序初始加载时 它将呈现与 URL 相对应的正确组件 但是 任何后续的组件Link单击不会呈现所需的组件 图书馆 反应路由器 4 2 2 https reacttraining com
  • 计算三次贝塞尔曲线的弧长、曲线长度。为什么不工作?

    我正在用这个算法计算弧长 三次贝塞尔曲线的长度 function getArcLength path var STEPS 1000 gt precision var t 1 STEPS var aX 0 var aY 0 var bX 0
  • mongodb 聚合 - 累积字段的不同组值

    如果我有Player表格文件 name String score Int 我有Group文档 其中组代表玩家列表 groupName String players ObjectID 玩家可以属于多个组 我想做一个聚合Player文档 按以下
  • 使用 JavaScript 移动页面上的按钮

    我的按钮可以移动 但奇怪的是 我无法弄清楚偏移是否有问题 我希望我的按钮随着鼠标光标移动 但现在它的移动方式不是我想要的 有时它会消失 另外 创建的新按钮是重叠的 我不知道如何解决这个问题并拥有更好的外观 var coorA var coo
  • 如何计算特定字符在字符串中出现的次数

    我正在尝试创建一个函数来查看数组中的任何字符是否在字符串中 如果是 有多少个 我尝试计算每一种模式 但是太多了 我尝试使用 Python 中的 in 运算符的替代方案 但效果不佳 function calc fit element var
  • 改变 JavaScript 中的顶部填充

    以下是我在 css 中设置顶部填充的方法 body font size font size px margin 0 padding 100px 0 20px 0 width 100 important 如何使用最简单的 javascript
  • 使用 Javascript 设置 cookie [重复]

    这个问题在这里已经有答案了 我正在尝试构建我的第一个移动应用程序 它需要连接到我的 mysql 数据库并使用 json 返回数据 这很好 目前我有一个登录系统 一旦确定用户名和密码存在 它就会返回一条成功消息 对于下一步 我想在我的页面上使
  • 使用javascript动态更新css内容

    需要将 css 更新为动态值 我不确定最好的方法是什么 div style zoom 1 div 缩放级别将根据窗口大小调整触发 应用程序将相应缩放 我将此应用程序加载到 cordova 中并让它在 iPAD 中运行 然后我意识到需要使用
  • $resource.query 返回分割字符串(字符数组)而不是字符串

    我正在使用像下面这样的 Angular resource angular module app factory data function resource var Con resource api data update method P
  • 主页(网格)上的缩略图现在显得模糊。如何纠正?

    我不知道这看起来是否愚蠢 但从早上开始我就无法纠正这个突然出现在我的博客网站上的错误www candidopinions in http www candidopinions in 我有一个网格视图模板 其中博客文章中的特色图像作为调整大小
  • Rails 3.1 和图像资源

    我已将管理主题的所有图像放入名为 admin 的文件夹内的资产文件夹中 然后我像平常一样链接到它 Ruby image tag admin file jpg CSS logo background url assets images adm
  • 使用 Enzyme 测试 `React.createRef` api

    我想测试下面的类 它使用React createRef api 不过 快速搜索并没有发现任何这样做的例子 有人成功过吗 我该如何嘲笑裁判 理想情况下我想使用shallow class Main extends React Component
  • Rails 4 的 mobile_fu

    我正在尝试将我的应用程序从 Rails 3 2 13 切换到 Rails 4 在此过程中 我遇到了一个主要障碍 我使用 gem mobile fu 来确定用户是否来自移动设备 该 gem 需要 Railties 3 2 13 但 Rails

随机推荐

  • 禁止从 Python 函数打印 stdout / stderr

    我有一个 Python 脚本 它使用我的雇主提供的一些封闭式 Python 函数 即我无法编辑这些函数 当我调用这些函数时 它们会将输出打印到我想禁止的 Linux 终端 我尝试通过重定向 stdout stderr orig out sy
  • 错误:找不到 npm 模块“时刻”

    我有一个 Meteor 应用程序 可以在本地主机上完美运行 但是当我将其部署到远程时heroku服务器 我收到以下错误 我正在实施this 请问有什么办法解决这个问题吗 2016 09 09T13 26 02 533532 00 00 he
  • 创建静态和共享 C++ 库

    我想建立静态库和共享库在一个项目中 我知道需要从使用 fpic 编译的对象创建共享库以获得位置无关代码 而静态库不需要这个 这一切都很好 我可以创建共享库或静态库 我不想编译我的源代码两次以获得不同的目标文件 那么这通常是如何完成的 我读如
  • Linux,第一次读取或第一次写入时会清零页面页错误吗?

    我的问题是 Linux 特定的 需要了解内核 虚拟内存 mmap 页面错误 我有一个带有大型静态数组的 C 程序 它将进入 bss 部分 内存 初始化为零 当程序启动时 这块内存并没有物理分配 只有虚拟内存 虚拟内存的每一页都映射到特殊的零
  • iOS 将文件从主包复制到文档目录

    我正在尝试将添加到名为 includes 的文件夹中的文件复制到文档目录上也称为 includes 的文件夹中 我得到的值为零resContents Why void copyResources NSString sourcePath NS
  • 流式传输实时音频

    我想在 Android 设备上具有实时音频流的功能 它通过设备的 MIC 捕获音频并将其发送到服务器 我知道在录制后发送音频文件 但如果是实时的 我需要帮助 也许可以通过不断向服务器发送字节数组来完成 如果是的话 如何或是否有其他方式 请分
  • TypeError: Type str 不支持 buffer API # find 方法?

    这是我的输入 div class content div class stream item header a class account group js account group js action profile js user p
  • Apple A4 上的 YUV 到 RGBA,我应该使用着色器还是 NEON?

    我正在使用 OpenGL ES 和 ffmpeg 为 Apple TV 编写媒体播放器框架 在 OpenGL ES 上渲染需要转换为 RGBA 使用 swscale 进行软转换速度慢得难以忍受 所以根据网上的信息我想出了两个想法 使用 ne
  • 从 Spark (pyspark) 管道内的 StringIndexer 阶段获取标签

    我在用Spark and pyspark我有一个pipeline设置了一堆StringIndexer对象 我用它来将字符串列编码为索引列 indexers StringIndexer inputCol column outputCol co
  • 在 TypeScript 中,当类型是函数的参数时,是否有办法限制 Partial 类型的额外/多余属性?

    是否有一种标准方法可以让场景 1 因未指定已知属性而出现编译错误 就像场景 2 中一样 或者有一些解决方法吗 class Class2 g number class Testing static testIt3
  • RabbitMQ 的最大消息大小

    发布到 RabbitMQ 队列 发布 订阅模型 时消息的最大大小是多少 我在文档中看不到任何明确的限制 但我认为有一些指导方针 提前致谢 我正在做比较亚马逊队列服务 and RabbitMQ或其他流媒体 消息平台 如 kinesis kaf
  • 为什么 Javascript 内置方法/函数是用 C/C++ 而不是 JS 语法编写的

    这个问题是参考这个老问题在哪里可以找到 javascript native functions source code 该页面上的答案说 源代码位于c or c 但我很好奇为什么来源 定义 是这些语言 我的意思是它们是 JS 函数定义 例如
  • 分离一些次要情节,但不分离其他次要情节; Python、Matplotlib

    我正在 python v 2 7 9 中使用 matplotlib v 1 4 2 绘制子图网格 我可以手动调整子图之间的间距 但我希望仅某些子图具有不同的间距 我希望的最终图形是左侧有一个 2x5 子图网格 右侧有一个 2x5 子图网格
  • 如何“平行”组合镜头

    我是优秀的新手Control Lens我正在尝试将两个镜头 并行 而不是按顺序 组合起来 就像我对 Control Arrow 所做的那样 如果我以lens文档 data Foo a Foo baz Int bar Int a 我希望能够做
  • 如何从存档安装 stringi 库并安装本地 icu52l.zip

    我们正在笨手笨脚地让一些 R 代码在生产环境中工作 作为其中的一部分 我们安装了一些 R 包 如下所示 Default directories and mirrors WORKING DIR lt srv foo bar baz LIB D
  • 完全信任 Visual Studio 2012 和 .Net 4.0 的 UNC 共享

    每次我尝试打开位于 UNC 共享上的解决方案时 我都会收到以下对话框 我尝试过使用caspol exe汉塞尔曼谈论的效用here 但似乎不起作用 至少对于在 Visual Studio 2012 中运行的 Net 4 项目来说不是 使用相同
  • Android:我可以在服务中使用 Google Analytics吗?

    我有一个应用程序 大部分时间作为服务在后台运行 网上有很多关于如何使用 Google Analytics API 和 EasyTracker 库来跟踪多个活动的示例和教程 但没有一个示例和教程解释了如何在服务中使用 Google Analy
  • Chrome 和 Firefox 中带有换行符的文本区域的最大长度验证不同

    问题是 Firefox 将换行符视为 1 n 字符 而 Chrome 将它们视为 2 r n 这就是我得到的textarea with maxlength 10 这是10字符为Firefox 1234 5 6 7 这是10字符为Chrome
  • PHP 中唯一的临时文件名?

    我需要将一些文件转换为 PDF 然后将它们附加到电子邮件中 我在电子邮件方面使用 Pear Mail 这很好 大多数情况下仍在解决一些问题 但作为此过程的一部分 我需要创建临时文件 现在我可以使用临时南 函数 但听起来它在文件系统上创建了一
  • Rails 3.2.2 不执行 rjs

    我正在关注这本书使用 Rails 进行实用敏捷 Web 开发第 4 版 但我使用的是 Rails 3 2 2 而不是书中推荐的 3 0 5 ruby v ruby 1 9 3p125 2012 02 16 i686 linux rails