【问题标题】:how to access the coffee file present inside the views folder of rails如何访问存在于rails的views文件夹中的咖啡文件
【发布时间】:2016-12-23 07:17:27
【问题描述】:

我最近加入了工作,并得到了项目。我对 rails、js 和 ajax 很陌生。我在 view/developer 文件夹中有一个文件名 update.js.coffee。我有 developer_controller,其中定义了更新操作,它使用 ajax 更新特定表单元素的值,具体取决于其他元素的变化。

我正在使用做以下工作的咖啡文件

我的update.js.coffee 文件及其位置\app\views\developer

 $("#typhos_platform_dev").empty().append("<%=escape_javascript(
 render(:to_partial_path => @platforms, :partial => "platforms" )) %>")

正如我所见,我们正在部分“平台”中访问@platforms。请注意,@platforms 已在 action update 中定义,部分平台已在 index.html.erb 中呈现。部分函数是获取@platforms 的值并将其打印在下拉列表中。

在运行 rails 服务器时,我注意到咖啡文件甚至没有被执行,因为它无法识别 @platforms 实例变量,因此部分抛出错误。

如何访问咖啡变量??

(因为我没有发现关于在视图中创建的咖啡文件的所有问题。我发现的所有问题都与资产管道有关。)

【问题讨论】:

  • 你的 update.js.coffee 看起来像 update.js.erb 只需重命名它!

标签: javascript ruby-on-rails coffeescript


【解决方案1】:

当您在 rails 中进行 ajax 调用时,调用应该转到您的控制器执行您正在调用的操作,然后将响应发送到位于 views/controller/ 中的 javascript.erb 文件

因此,如果您要对 developer_controller 中的操作 update_dropdown 进行 ajax 调用,那么您需要在

中添加一个 js 文件

视图/开发者/

名为 update_dropdown.js.erb 的目录。那么你应该可以访问所有的实例变量

我发现 this article 很有帮助

【讨论】:

  • 实际上,有两个选项卡,您可以将其称为一个用于 QA,另一个用于开发人员,因此我在上面提到的 QA 应用了相同的概念,并且工作正常,但在这里它不能...我仍然会尝试使用 .js.erb 文件来实现 yu 所说的
猜你喜欢
  • 1970-01-01
  • 2010-11-08
  • 1970-01-01
  • 1970-01-01
  • 2013-09-15
  • 2020-05-22
  • 2014-10-20
  • 2014-12-12
  • 2020-10-30
相关资源
最近更新 更多