【问题标题】:Using erb render in javascripts folder在 javascripts 文件夹中使用 erb 渲染
【发布时间】:2014-03-30 09:48:36
【问题描述】:

我正在尝试使用未连接控制器的按钮在 div 中插入 rails 部分。由于我不是通过控制器执行此操作,因此我无法使用标准 format.js 执行此操作。该脚本位于assets/javascripts 文件夹中,这是其中的重要代码:

accounts.js.erb:

$("#account-div").append("<%= j render("newbutton") %>");

当我尝试打开网站时,我收到以下错误:

undefined method `render' for #<#<Class:0x007fbc7bd060f8>:0x007fbc7aaa0e40>

上面的代码在通过respond.to 块放置在AJAX 响应中时有效。如何传递正确的路径,以便渲染方法找到位于 views/accounts/ 文件夹内的 _newbutton.html.erb 文件?谢谢!

【问题讨论】:

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


    【解决方案1】:

    由于 assets 不能使用 render 方法,请将您的 .js.erb 文件移动到 views 目录并使用

    <%= j render(:partial => 'accounts/newbutton') %>
    

    参考 - Rendering partial in js.erb filehttps://stackoverflow.com/a/6309970/184184

    【讨论】:

    • 忘记了,需要使用:partial
    • views/accounts/newbutton 应该是 accounts/newbutton 因为 accounts 是控制器目录
    • 我觉得这个需要再检查一遍
    • 还是不行。当使用 AJAX 响应呈现相同的部分时,它可以工作。问题可能出在其他地方吗?
    • 我认为您可以将此 .js.erb 文件放在 /views/accounts 下并从您的操作视图中调用。这应该有助于stackoverflow.com/questions/18437282/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-16
    • 2018-07-03
    • 2014-01-24
    • 2017-11-11
    • 1970-01-01
    相关资源
    最近更新 更多