0

私の Rails アプリでは、提供されるコントローラーとアクションに応じて異なる動作をするスクリプトが必要です。したがって、私の ApplicationController では、これらを次のように利用できるようにします。

before_filter :save_action_controller  

def save_action_controller
  @action = action_name
  @controller = controller_name
end

そして、erb でフィルター処理された JavaScript ファイルには、次のようなものがあります。

window.controller = <%= @controller || 'undefined' %>;
window.action = <%= @action || 'undefined' %>;

しかし、このコンテキストでは @controller と @action は両方とも nil のように見えますか? ただし、ビューとヘルパーからアクセスできます。また、「存在しない」変数に本当にアクセスしようとしている場合、例外を発生させずにこれがどのように行われるかわかりませんか?

javascript からこれにアクセスするにはどうすればよいですか? 好ましい方法はありますか?

4

1 に答える 1

6

このRailscastエピソードには、JavaScript へのデータの受け渡しに関する情報が含まれています。

これを行うにはいくつかの方法がありますが、良い方法の 1 つはデータ属性を使用することです (railscast に示されているように)。次のようにhtmlで定義できます。

<h1>Products</h1>

<div id="products" data-url="<%= products_url %>">
  Loading products...
</div>

そして、JavaScript経由でアクセスします

jQuery ->
  alert $('#products').data('url')
于 2012-07-17T14:33:09.683 に答える