2012-04-01 52 views
0

我对rails很陌生,最近一直在尝试实现一些ajax。在我的用户注册页面上有三个按钮来创建三种不同的帐户类型。在Rails 3中指定通过Ajax进行渲染的部分

下面是对每个链接:

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

在我的网页上的JavaScript,当其中一个被点击我的班“当前”添加到其锚标记。请注意,我使用rel标签指定帐户类型,这在三个不同的链接中有所不同。

new.js.erb文件阿贾克斯打看起来像这样...

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

如何与某种类型的JS变量将切换为客人所点击的相对取代:file => 'users/_guest.html.erb'一个标签。我没有问题抓相应的rel,我已经用new.js.erb中的一个简单提醒测试了这个。但对于我的生活,我不能得到一个简单的字符串:file =>...取决于点击按钮的rel。

任何帮助将不胜感激。除非你有红宝石做的工作

谢谢, 克里斯

回答

1

尝试访问JavaScript的变量是不可能的。另外请确保您白名单列出传递的参数,因为用户可以传递任意数据。

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

+0

非常感谢帮助! <%= link_to“注册”,signup_path(:format =>'js',:form =>'studio'),:remote => true,:rel =>'studio',:id =>'account-signup - 'link%'$('<%= escape_javascript render(:file =>“users/_#{params [:form]}。html.erb”)%>')。insertAfter('#signup-form-target “); – 2012-04-02 18:39:28