アクション固有のアセットパイプライン項目を追加する方法

私はRails 3.2.1アプリケーションを作成していますが、私は単一のアクションビューのために入れたいJavaScriptコードをいくつか持っています。単にjqueryプラグインを呼び出してカウントダウンを開始しますが、私はそれをコーヒースクリプトで書きたいので、資産パイプラインがこれを行う正しいツールだと感じます。

Also I need access to the variables passed by the controller such as @question. How would I do this? I have looked into the coffeebeans gem but that only works for :remote=>true forms and links.

4
可変部分へのアクセスには、それのためのレールキャストがあります。 Javascriptにデータを渡す =)
追加された 著者 Damon Aw,
これをチェックしてください:> stackoverflow.com/questions/8566129/…
追加された 著者 Jesse Wolgamott,

1 答え

あなたの問題はさまざまな方法で解決できます。

アセットを動的に追加する

  1. Add to our application helper the following method:

    module ApplicationHelper
        def include_related_asset(asset)
        #          v-----{Change this}
            if !YourApp::Application.assets.find_asset(asset).nil?
                case asset.split('.')[-1]
                    when 'js'
                        javascript_include_tag asset
                    when 'css'
                        stylesheet_link_tag asset
                end
            end
        end
    end
    
  2. Call the helper method in your layout-file:

    <%= include_related_asset(params[:controller].to_param + '_' + params[:action].to_param . 'js') %>
    
  3. Create specific assets for your controller actions. E. g. controller_action.js

Use yield

  1. Add <%= yield :head%> to your layout head
  2. Include your assets from your action views:

    <% content_for :head do %>
    <%= javascript_include_tag 'controller_action' %>
    <% end %>
    

詳細については、 Railsガイドをご覧ください。


コントローラのデータをJavaScriptに渡すには、次のようにします。

    <%= javascript_tag do %>
        window.error_message = '<%= j error_message %>';
    <% end %>

詳細については、 RailCast Episode#324 をご覧ください。

1
追加された