在Rails 3中通过Ajax指定部分呈现

时间:2012-04-01 23:35:49

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

我对rails很新,并且最近一直试图实现一些ajax。在我的用户注册页面上有三个按钮,用于创建三种不同的帐户类型。

以下是每个链接:

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

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

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

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

如何将:file => 'users/_guest.html.erb'替换为某种类型的js变量,该变量将为所单击的标记的rel切换guest。我没有问题抓住相应的rel,我已经在 new.js.erb 中通过一个简单的警报进行了测试。但是对于我的生活,我不能得到:file =>...的简单字符串,具体取决于点击按钮的rel。

非常感谢任何帮助。

谢谢, 克里斯

1 个答案:

答案 0 :(得分:1)

除非你有红宝石做这项工作,否则无法尝试访问javascript变量。此外,请确保您列出了由于用户可以传递任意数据而传递的参数。

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