【问题标题】:Rails & Ajax: alternative to using [action_name].js.erb files?Rails 和 Ajax:替代使用 [action_name].js.erb 文件?
【发布时间】:2013-10-22 07:30:47
【问题描述】:

我已经按照优秀的http://railscasts.com/episodes/136-jquery-ajax-revised 在我的网站上获得了一些 ajax 功能。

唯一的问题是我在侧边栏中重新加载了一个元素,这意味着我需要为我网站上每个控制器的每个操作创建一个 [action_name].js.erb。

有没有办法将以下代码行放在一个文件或位置中以使其在整个网站上运行?

我在我的 [action_name[.js.erb:

中谈论的代码行
$("#mol-form-dynamic").html("<%= escape_javascript(render("comments/mol_form")) %>");

application.js:

$(function() {
  $("#mol-form a").click(function() {
    $.getScript(this.href);
    return false;
  });
});

提前谢谢你。

【问题讨论】:

    标签: javascript jquery ruby-on-rails ajax ruby-on-rails-3


    【解决方案1】:

    你可以在你的views 目录中创建一个shared 目录,并将相同的代码放在一个名为sidebar_content.js.erb 的文件中,并通过在你的操作末尾添加以下代码来调用任何控制器的任何操作.

    respond_to do |format|
      format.js { render 'shared/sidebar_content.js.erb' }
    end
    

    【讨论】:

    • 谢谢阿米特。不幸的是,它似乎不起作用。整个页面保持空白。
    • 哦,我的错...在上面的代码中,请将shared/sidebar_content.js.erb替换为shared/sidebar_content
    • 也试过了,但同样的问题
    • 您可以尝试以下方法吗:1) 只需在您的js.erb 文件中写入$("#mol-form-dynamic").html("test content") 来放置一些测试内容,看看它是否在div 中被替换?
    • 它使用 railscast 方式显示。你的方式页面仍然是完全空白的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-15
    • 1970-01-01
    • 1970-01-01
    • 2018-02-23
    • 2018-09-21
    • 2022-07-14
    相关资源
    最近更新 更多