2012-04-01 119 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