joppotjoppotコピペで絶対動く。2015年8月7日Tweet概要みなさんこんにちはcandleです。今回はgemでvendorを作成し、それをrailsアプリケーション側で読み込ませる為の方法を紹介します。hoge/initを記述してください。みたいなのを見ると思います。今回はこれを自作したgemで実装します。helper編)railsがある程度使えるvendor/assetsの使いどころところで、gem側でvendor/assetsを作成し、ユーザーにjavascriptないしcssを読み込ませる利点はなんでしょうか。これはわざわざ、ユーザーがそのgemで使用するjavascriptやcssを自分のrailsアプリケーション内に用意しなくても簡単な記述だけで使用できるところにあると思います。gemのjavascriptを全て、ユーザーのrailsアプリケーションのapp/assets/javascriptsに置いてしまうと、そのgemを使わなくなった場合、ファイルの削除が大変になりますが、もしもapp/assets/javascripts/application.jsに一文書き加えるだけで、javascriptが使えれば便利ですよね。1つ注意点があります。それはそのgemを使っているrailsアプリケーションの開発者がjavascriptまたはcssをカスタマイズしたい場合です。作成しているgemのjavascriptが機能面で閉じられていて、カスタマイズする必要がない場合は上の方法に向いています。gemのjavascriptを変更したり、機能を追加させたい場合はこの方法はよろしくありません。いうのも、開発者にgemのvender以下にあるjavascriptを変更させるのはあまりに不便だからです。railsアプリケーションの開発者にjavascriptを改変させてあげたい場合は、次回以降紹介するgeneratorの方法を使用しましょう。今回はvendor/assetsを試します。gemを作成しています。gemは下の様になっています。gemのフォルダの中にjavascript用のフォルダとcss用のフォルダを作ります。自作しているgemフォルダの中で、まずはvendorフォルダ、その下にassetsフォルダを作成します。vendor/assets次にjavascriptsフォルダとstylesheetsフォルダを作成します。stylesheets流儀なのですが、一般にjavascriptsフォルダ、stylesheetsフォルダの中にそのgemの名前のフォルダを作ります。その中にそれぞれのファイルを置いていく方針を取ります。javascriptsフォルダに直接ファイルを置いてしまうとrailsアプリケーション側のjavascriptsと競合してまう可能性があるからでしょう。下の図が分かり易いと思います。いうことで、ファイルの競合を防ぐことも含めて、javascriptsフォルダとstylesheetsフォルダにそれぞれgem名のフォルダを作成します。このチュートリアル通りやっている人はgood_itemフォルダを作ります。stylesheets/good_item作成したフォルダの中に、チュートリアルなので、2つ以上ファイルを作ります。stylesheets/good_item/design.css中身はひとまず書かずに、railsアプリケーション側で読み込みが出来るか試します。アプリケーションでgemのvendorを読み込むrails側で自作したgemのvendorのjavascriptないしstylesheetを呼び出す記法は殆ど変わらないので、javascriptの方で説明して行きます。自作したgemを読み込んでいるrailsアプリケーションの「app/assets/javascripts/application.js」を開きます。そこに以下の一行を加えます。good_itemこれだけで、自作したgemの「vendor/assets/javascripts/good_item/index.js」が呼び出されます。構造で示すと下の図になります。application.jsで記述している「good_item」というのはvendorの中のフォルダを指しているという事ですね。ブラウザでアクセスすると、読み込まれているのが分かります。続いて、index.jsではなくて、作成したsub.jsを読み込みたい時はapplication.jsに以下を加えます。good_item/subブラウザで読み込むと、index.jsの代わりにsub.jsが呼ばれています。gemのvendorのjavascriptsのgood_itemをまとめて呼びたい時は一工夫必要です。gemのindex.jsとsub.jsを呼び出したい場合は、index.jsに以下を加えます。./subその上でrailsアプリケーションの「app/assets/javascripts/application.js」に以下を加えてindex.jsを呼びます。ブラウザで確認しますと、しっかりindex.jsとsub.jsが呼ばれています。jsのファイルを増やしたなら、その分、index.jsでrequireして上げれば良いわけです。ここではstylesheetのほうの読み込み方は解説しませんが、同じ記述方式で呼び出せます。まとめgemのassetsの呼び出しを理解できたでしょうか?私はなかなかこれが上手くいかなくて、頭が痛くなったのですが、分かってしまえば簡単ですね。スポンサードリンク「為になったなぁ」と思ったら、シェアお願いします。コメントをキャンセルメールアドレスが公開されることはありません。みなさんこんにちはcandleです。前回と引き続き、SQLiteManagerを使用してsqlite3を試してみましょう。みなさんこんにちはcandleです。今回はplantUMLをサポートするemacsのplantuml-modeを導入して使ってみましょう。みなさんこんにちはcandleです。今日はmysqlのdatetime型とtimestanp型におさめられているデータの取得を紹介します。みなさんこんにちはcandleです。今回からできればシリーズ物として、railsのgemを作っていこうと考えています。みなさんこんにちはcandleです。FILEと出てきてしまった時の対処です。Sansフォントウェイトのcss書き方まとめプロフィールベンチャー企業のCTOをやってます。大学時代にプログラミングを始め、javaから入門し、C++へて、PHPへと進み、会社ではRailsを使用。環境設定スポンサードリンクjoppotコピペで絶対動く。