Techこの広告は、90日以上更新していないブログに表示しています。2017-07-06Rails5でコントローラー別に実行するJavaScriptを分けるRailsでコントローラー毎に実行するJavaScriptを分けたいときの対応方法です。対応方法としては、コントローラー毎にファイルを作り読み込むファイルは1つにしてコントローラー毎に実行するJavascriptを分けるという方法があるかと思います。1の方法でも良いのですが、Turbolinksを使うのであればファイルを分けるのは望ましくないので2の方法で実装します。HTMLにコントローラー名を設定JavaScriptからコントローラーを取得するために、HTMLのカスタムデータ属性を使いコントローラー名を設定します。bodyタグでカスタムデータ属性を使っていますが、ほかの方法でも問題ありません。Slimでカスタムデータ属性を設定する場合。コントローラー名を取得するHTMLからコントローラー名を取得します。$('body').data('controller');JavaScriptの量が少なく、とにかくシンプルにコントローラー毎に処理を分けたいという場合は、以下のように単純な分岐でも良いかもしれません。初期化処理をするしかし、これでは分岐が増えると大変なことになるので、以下のような初期化処理をつくります。コントローラー名と同じコンストラクタをインスタンス化して実行するという非常にシンプルなものです。}});JavaScriptの場合は、以下のようにコントローラー別にコンストラクタをつくります。console.log("userコントローラーで実行されます");}CoffeeScriptを使う場合は、以下のようにコンストラクタの名前に@を付けて外部から参照できるようにしてください。console.log("userコントローラーで実行されます")コントローラー名と同じコンストラクタを作ればインスタンス化して実行するようになります。RailsScriptを使うRailsScriptというGemを使うことでも可能です。RailsScriptも内部の実装は、上記の方法とほぼ同じようなものです。使い方が悪かったのか、Turbolinksとあわせると画面遷移したときにJavaScriptが実行されなかったので採用していません。2.0'を追加をしてインストール。app/assets/javascripts/application.jslayout/application.html.slimにnclude_rails_scriptを追加application.jsに設定を追加。.こんな感じで使えます。rb...2017-07-20RailsでRSSフィードを作成する:builderRailsでbuilderを使ってRSSフィードを追加するためのメモです。S3からほかのサーバーにファイルを一括でダウンロードするkaminariを使って外部APIのページネーションをするjQueryで複数のフォームに文字数カウンターを表示する月別アーカイブはてなブログをはじめよう!mtrockさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。