0

我是 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 年 6 月 30 日 11:34:37 -0700 开始 GET "/test" for xxxx 由 DefaultController#test 作为 JS
渲染 Default/test.js.erb (0.3ms) 在 2ms 内完成 200 OK (查看:2.1ms | 活动记录:0.0ms)

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

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

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

4

1 回答 1

1

乔半脸是对的,

"alert('Hello Rails');"

应该:

alert('Hello Rails');

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

<script type="text/javascript">
  content of js.erb file
</script>
于 2013-06-30T20:16:24.217 回答