【问题标题】:AJAX request Rails 3.1 not rendering javascriptAJAX请求Rails 3.1不呈现javascript
【发布时间】:2013-06-30 18:52:35
【问题描述】:

我是 Rails 的新手。我有一个在 RAILS 中执行基本 AJAX 功能的程序。单击链接 TEST 时,将执行控制器中的测试路径,该控制器执行 test.js.erb。但是我在服务器日志中看到了该内容,但没有看到警报消息。

index.html.erb:

<%= link_to 'TEST', test_path, :remote => true %> <br>

测试动作:

  def test
    respond_to do |format|
      format.js 
    end
  end

测试 js.erb:

"alert('Hello Rails');"

服务器日志:

在 2013-06-30 11:34:37 -0700 开始为 x.x.x.x 获取“/test” DefaultController#test 作为 JS 处理
渲染默认/test.js.erb (0.3ms) 2ms 内完成 200 OK (Views: 2.1ms | ActiveRecord: 0.0ms)

如果我更改代码以直接从控制器操作呈现 js,如下所示,我会看到警报消息。

  def test
     render :js "alert('Hello Rails');"
  end

但我希望 js 在单独的 js 文件中执行。有人可以帮助我解决我做错了什么,以及如何将其作为 test.js.erb 的一部分执行吗?

【问题讨论】:

  • 只需从警报中删除双引号

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-3.1 ruby-on-rails-3.2


【解决方案1】:

Joe Half Face 是对的,

"alert('Hello Rails');"

应该是:

alert('Hello Rails');

将其放在引号中会将其视为字符串,因此无需运行 javascript 代码,js 文件中的所有内容都将其想象为 javascript 标签内的蜜蜂:

<script type="text/javascript">
  content of js.erb file
</script>

【讨论】:

  • 我想这不需要答案。
  • 同意,问题本身可以删除。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多