人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

RailsのERBについて質問です。

jQueryでAjaxを実装しており、通信先のURLを動的に指定したいです。
Ajaxのurl指定部分はこのように実装しようとしています。

url: "<%= url_for(:controller => 'books', action: => 'edit', :id => <動的に指定>) %>"

idを動的に指定するため、<動的に指定>の部分にjavascriptの変数を設定すれば良いかと考えていました。
しかし、<%= %>の記述中にjavascriptの変数を指定すると、変数名のリテラルがそのままidパラメータとして認識されてしまいます。

<%= %>の記述中にjavascriptの変数を使う方法はありますでしょうか?
もしくは、別の方法で実現できる方法があればそちらの回答もお待ちしております。

●質問者: Gaasu
●カテゴリ:コンピュータ ウェブ制作
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● TransFreeBSD
●200ポイント

これでいけるか分かりませんけどquick hack的には以下でどうでしょう?

url: "<%= url_for(:controller => 'books', action: => 'edit', :id => 'dynamic_id_replace_tag') %>".replace("dynamic_id_replace_tag",<javascript変数>)

'dynamic_id_replace_tag'というidパラメータがURLにそのままあるだろうから、その部分をjavascriptのreplaceメソッドで置換するようなコードにしました。
前後がないですけど、おそらくこの部分に式はおけるだろうと思います。

別の方法としては、rubyのurl_forをjavascriptで実装する。と言っても、URLの生成ルールが変わることがないか、変わったらその時はまた修正する事にするなら、たとえば下記のように直書きで良いことになります。

(例)url: "/hogehoge/books/edit/"+<javascript変数>

メンテ的には素直じゃないかも知れないけれど、生成されたコード的には素直です。

あと、これが出来れば一番素直かもしれないのが、idを動的に生成するjavascriptのコードをrubyで実装する方法です。

関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ