【问题标题】:Specifying a partial to render via Ajax in Rails 3在 Rails 3 中通过 Ajax 指定要渲染的部分
【发布时间】:2012-04-01 23:35:48
【问题描述】:

我对 Rails 有点陌生,最近一直在尝试实现一些 ajax。在我的用户注册页面上有用于创建三种不同帐户类型的三个按钮。

这里是每个链接:

<%= link_to "sign up", signup_path(:format => 'js'), :remote => true, :rel => 'guest',  :id => 'account-signup-link' %>

在页面上的 javascript 中,当单击其中一个时,我将类“current”添加到其锚标记中。请注意,我使用 rel 标签指定帐户类型,这在三个不同的链接中有所不同。

我的 new.js.erb 被 ajax 命中的文件看起来像这样...

var template = $('a.current').attr('rel');     
$("<%= escape_javascript render(:file => 'users/_guest.html.erb') %>").insertAfter('#signup-form'); 

如何将:file =&gt; 'users/_guest.html.erb' 替换为某种类型的 js 变量,该变量将为点击标签的 rel 切换来宾。我在获取适当的 rel 时没有问题,我已经在 new.js.erb 中通过一个简单的警报对此进行了测试。但是对于我的生活,我无法得到一个简单的字符串:file =&gt;...,这取决于单击按钮的 rel。

任何帮助将不胜感激。

谢谢, 克里斯

【问题讨论】:

    标签: ruby-on-rails ajax ruby-on-rails-3.2


    【解决方案1】:

    除非您有 ruby​​ 来完成这项工作,否则无法尝试访问 javascript 变量。还要确保将传递的参数列入白名单,因为用户可以传递任意数据。

    将 rel 的数据作为参数的一部分,如 signup_path.js?rel=guest 并通过 params[:rel] 访问。这应该是一个 POST 请求,因为它是一个创建 url。

    【讨论】:

    • 非常感谢您的帮助! 'js', :form => 'studio'), :remote => true, :rel => 'studio', :id => 'account-signup -link' %> $(' "users/_#{params[:form]}.html.erb") %>').insertAfter('#signup-form-target ');
    猜你喜欢
    • 2023-03-21
    • 2015-04-30
    • 1970-01-01
    • 2013-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-24
    相关资源
    最近更新 更多