2012-04-01 6 views
0

私はレールには新しく、最近いくつかのAjaxを実装しようとしています。私のユーザーサインアップページには、3つの異なるアカウントタイプを作成する3つのボタンがあります。ページ上の私のJavaScriptでRails 3でAjax経由でレンダリングする部分を指定する

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

、これらのいずれかをクリックしたときに、私はそのアンカータグにクラスの現在」を追加します。ここでは

は、それぞれのリンクです。 relタグを使用してアカウントのタイプを指定します。これは3つの異なるリンクで異なります。

私のAJAXに見舞わファイルは次のようになりますnew.js.erb ...私がクリックされたのRELのためのゲストを切り替えますjsの変数のいくつかのタイプの:file => 'users/_guest.html.erb'を置き換えることができますどのように

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

タグ。適切な関係を取得するのに問題はありません。簡単なアラートでこれをテストしました。new.js.erbしかし、私の人生のために、私は単純な文字列を得ることができません:file =>...クリックしたボタンのrelに応じて。

ご協力いただければ幸いです。あなたはルビーが仕事を持っていない限り、JavaScriptの変数にアクセスしようとすると

おかげで、 クリス

答えて

1

ことはできません。また、ユーザーが任意のデータを渡すことができるので、渡されたパラメータをホワイトリストに表示するようにしてください。

relのデータをsignup_path.js?rel=guestのようにparamsの一部として取得し、params [:rel]でアクセスします。これは、作成URL以降のPOST要求でなければなりません。

+0

ありがとうございました。 rel => 'スタジオ'、:id => 'アカウントサインアップ(%= link_to "sign up"、signup_path(:format =>' js '、:form =>' studio ') insertAfter( '#signup-form-target());}}}}}}}}を使用します。 '); –

関連する問題