rails js.erb 没有被渲染

Posted

技术标签:

【中文标题】rails js.erb 没有被渲染【英文标题】:rails js.erb does not get rendered 【发布时间】:2013-07-06 12:31:14 【问题描述】:

我在edit.html.erb中有以下代码

    <%= f.select(:newpages, @pages,  :include_blank => 'No newpage' , :id => 'function', :multiple => true, :size => '7', :selected => @selected ) %>

我有另一个代码在 edit.js.erb 中使用 jquery-multiselect,但它没有被渲染。

$('#function').multiSelect()

我已经阅读了 railcasts 教程并按照说明进行操作,但我不明白为什么它不起作用。

我的控制器是这样的:(我还没有把它格式化成js)

  def edit
    @print = Print.find(params[:id])
 #   @print.blackwhites.build
    @pages = (1..(@print.number_of_images_entry)).to_a
  end

【问题讨论】:

你的JS控制台有错误吗? 我得到 ReferenceError: $ not defined 【参考方案1】:

似乎由于某种原因,JQuery 在这次解析中是未知的,因此 $ 符号是未知的

    确保您使用的是 宝石'jquery-rails' 在你的 gem 文件中

    确保包括 //= 需要 jquery 在你的 application.js 中

希望对你有帮助

【讨论】:

我的 Gemfile 中有 jquery-rails 并且在此之前 //=require jquery 但它似乎并没有解决问题。从源代码中,我看到加载 erb 后加载了 jquery。 答案在这里:***.com/questions/13193905/… 现在没有错误,但我的 jquery 函数不起作用,即使我看到它正在加载。

以上是关于rails js.erb 没有被渲染的主要内容,如果未能解决你的问题,请参考以下文章

如何渲染与 Rails 中的成员操作同名的 js.erb?

Rails update.js.erb 不执行 javascript

在 js.erb 中渲染 Rails 部分而不重新加载整个页面

在 rails create controller (Rails 6) 中渲染 new.js.erb

Rails:从另一个控制器渲染 .js.erb?

Rails 6:Ajax 不接受 js.erb 中的渲染