如何在haml模板中的coffescript中的ruby代码中使用本地或实例变量

2024-04-09

我是 Rails 的新手,并面临着复杂的问题,试图在 Haml 模板的 CoffeeScript 中的 ruby​​ 辅助方法中使用变量。

这是我在 haml 中的代码

:coffee
  $('input#field').blur ->
    input = $('input#field').val()
    #{ ruby_method( input )}

ruby_helper.rb

def ruby_method (arg)
    if arg
        @model = Model.new(arg)
    end
end

这会导致如下错误

未定义的局部变量或方法

还尝试了实例变量

:coffee
  $('input#field').blur ->
    @input = $('input#field').val()
    #{ ruby_method( @input )}

这不能将其传递给辅助方法。

如何在 ruby​​ 辅助方法中获取 javascript 变量?

提前致谢!


Coffee Script 和 Rails 引擎的关系?

Rails 和 Coffee 脚本之间没有关系,Rails 中的任何内容都不能在 Coffee 脚本中访问。

那我能做什么呢?

只需创建def.js.erb文件放在您的视图文件夹中并编写您的 javascript 代码。在此文件中,您可以访问方法中的所有实例变量。

它如何调用method.js.erb?

用这个:

respond_to do |format|
  format.js
end

这将调用 method.js.erb 文件而不是 method.html.erb 文件。

希望能帮助到你

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

如何在haml模板中的coffescript中的ruby代码中使用本地或实例变量 的相关文章

随机推荐

  • npm 崩溃并显示“ERR!cb() 从未调用”

    我试图使用安装 vue cli npm install g vue cli 我收到以下错误 Unhandled rejection Error EACCES permission denied mkdir home moeketsi npm
  • Android ffmpeg 简单 JNI 包装器

    我一直在尝试使用带有命令行访问的 ffmpeg 二进制文件一段时间 但一无所获 使用runtime exec 看起来我能够让它工作的唯一方法是使用 C 中的包装器来使用 JNI 访问构建的 ffmpeg 库 主要问题 我已经有超过五年没有编
  • Guava 地图中的驱逐惰性

    当前的地图驱逐算法相当懒惰 看起来过期的对象只有在访问数据结构时才会被驱逐 例如 从地址到索引器的映射定义为 ConcurrentMap
  • 将控件定位在复选框的中间

    这是我之前问题的后续 依赖于字体的控制定位 https stackoverflow com questions 37306 font dependent control positioning 这是试图解决这个问题real这个问题背后的问题
  • BigTable中的布隆过滤器可以仅根据行ID进行过滤吗?

    BigTable 使用布隆过滤器来允许点读取 以避免访问给定键列对内不包含任何数据的 SSTable 如果查询只指定行 ID 而没有列 ID 这些布隆过滤器是否也可用于避免访问 SSTable BigTable 使用行列对作为插入其布隆过滤
  • 检测ES模块是否在Node中从命令行运行

    在 Node 中使用 CommonJS 模块时 您可以使用以下命令检测脚本是否正在从命令行运行require main module 在 Node 中使用 ES 模块时 检测脚本是否正在从命令行运行的等效方法是什么 使用 experimen
  • 套接字编程Python:如何确保收到完整消息?

    我正在使用 python 3 x 和套接字模块 服务器在 ipv4 地址上运行并使用 tcp 我阅读了一些有关如何发送和接收数据的教程 对于服务器或客户端 要确保发送整个消息 您可以简单地检查发送的数据量是否等于消息的大小 def myse
  • 将 Foreach 分成线程示例

    我想跑 SearchResultByOrderNumber string orderNumber 中的方法Foreach与多线程 有十个订单号OrderNumbers数据表 在搜索这些 OrderNumbers 时OrderResultsD
  • 为什么 babel 将“true”转换为“!0”

    我检查了我转换后的代码 我看到了true被转换为 0 Example let obj loading true 转换为 let obj loading 0 这是为什么 是因为性能原因还是其他原因 对于小型化 即 更小的包大小 也可以看看 b
  • Python 委托模式 - 如何避免循环引用?

    我想问在Python中使用委托模式是否会导致循环引用 如果是的话 实现它以确保对象及其委托将被垃圾收集的最佳方法是什么 在 Objective C 中 通过使用委托的弱引用来避免上述问题 在 C 中 我们不会对委托调用删除 我在这里找到了
  • AWS 在 Google 云 (GCP) 中承担同等角色吗?

    如何在GCP中设置多帐户 项目 在AWS中可以通过使用assume role 有人知道如何在 Google Cloud Platform GCP 中执行此操作吗 我尝试在 GCP 中探索 AWS 等效项 但找不到任何文档 据记载 承担角色
  • WPF DropShadowEffect - 意外的色差

    我有一个带有 DropShadowEffect 的 TextBlock 某些阴影颜色显示得比指定的颜色更深 几乎就像它们被染色一样 然而 并非每种颜色都会发生这种情况 有谁知道为什么 或者有纠正的方法吗 这是一个非常基本的示例
  • 从网络浏览器中检测和访问 USB 设备 - 即使用插件

    是否可以通过插件 activeX Java 或 Flex 编写一个能够检测从 USB 设备通道读取数据流的浏览器插件 我做了一些研究 但没有找到答案 http support microsoft com kb 832678 http sup
  • 如何向 Visual Studio 2017 或 Visual Studio 2019 注册“自定义工具”以使其正常工作?

    背景 我们有一个定制工具 https msdn microsoft com en us library bb166817 aspx它接受 xml 输入并生成 cs 输出 自定义工具需要注册 https learn microsoft com
  • 从 mysql 迁移后 postgres 数据库不工作

    我在sequelize中将MySQL数据库更改为postgreSQL 但是迁移后我对表或模型中的大小写首字母有问题 在我的 MySQL 版本正常工作之前 但在迁移之后我收到错误消息 500 SequelizeDatabaseError re
  • Django HTML 截断

    我正在使用内置截断words html https docs djangoproject com en dev ref templates builtins from olddocs truncatewords htmlDjango 的过滤
  • 连接二维数组

    我有两个数组 mat1 和 Mat2 我想要 new mat ma1 mat2 我写了一个可以运行的函数 我想知道是否有一个适用于非常大的矩阵的有效函数或者如何使用 Array CopyTo 方法来做到这一点 public static d
  • 太多带有 unicode 文本的 UILabels

    我有180UILabels 子视图UITableViewCells 在 iPad 应用程序中 每个宽度为 155 X 155UILabel 并且每个都包含大量的 Unicode 文本 阿拉伯语 当我向下滚动时TableView它挂起 1 秒
  • SQL 查询查找车站之间的火车

    这是我的火车时刻表 我想要一个车站之间火车的解决方案 Train Code 15609 ABC 15609 XYZ 15609 PQR 15609 ADI 15609 QWE 15609 XPM 15609 IND 15680 ABC 15
  • 如何在haml模板中的coffescript中的ruby代码中使用本地或实例变量

    我是 Rails 的新手 并面临着复杂的问题 试图在 Haml 模板的 CoffeeScript 中的 ruby 辅助方法中使用变量 这是我在 haml 中的代码 coffee input field blur gt input input