gemfileのインストール場所を変更する
Nitrousに限りませんが、無償でNitrousを使っている場合には、ひとつのBoxの中で複数のアプリケーション開発することになります。この場合、各Railsアプリケーションは、それぞれのgemfileを通じてライブラリをインストール、利用することになりますが、すべてのライブラリが全てシステムフォルダ内に格納されます。
~/workspace/xapp9(master)$ gem which rake
/home/action/.parts/packages/ruby2.1/2.1.2/lib/ruby/2.1.0/rake.rb
コンフリクトしたりすることは基本ありませんが、安全なアプリ開発をするために、各Railsアプリケーション内部にgemfileのライブラリがインストールされるように設定を変更します。方法は、bundle installを以下の通り、オプションをつけて実行するだけです。
~/workspace/xapp7(firstview)$ bundle install --path=vendor/bundle --without production
続きを読む
アイコンフォント"Font Awesome"を使う
bootstrap-sassでbootstrapのGlyphiconsを使おうと、いろいろ試行錯誤してみましたが、うまくいかなかったので諦めました。
変わりに、RubyGemsでアイコンフォントが提供されていると知ったので、こちらを試してみることにしました。今回利用したのは、"Font Awesome"です。見切り発車なので、どんなアイコンがあるのかも調べずに着手です(笑)
続きを読む作って知ったMVCの住み分けかた
「モデルの役割がビミョーだよね」
なんて思っていたのですが、以下のスライドシェアのスライドを読んで、自分が未熟なことことが良くわかりました。ちゃちゃっとSQLを書く手軽さに比べると、O/Rマッパーを使ったコーディングは、データそのものが見えずらいので使いにくい…そう思っていましたが、餅は餅屋、プログラミングにおいてはO/Rマッパーを使う意味というのが良くわかりました。
で、これを読んでいると、モデルの中に"named_scope"とやら(メソッド?)を仕込んで、コントローラーで必要なネームドスコープを使うことで、データベースの値を動的に捉えるといった考え方が正しいらしい。(後記:スコープはスコープでメソッドとは違うみたいだ…そりゃそうだよね名前違うんだし。)
たしかに、ネームドスコープを使って基本的なデータセットをモデルに定義しておいて、コントローラーで必要なネームドスコープを呼んで、ビューが表示するという関係だとMVCっぽい気がする。
後は読む価値は無いです。僕の反省文です。
続きを読むgemのインストール場所を調べる
まずは、アプリケーション名の一覧を取得します。アプリケーション名が分かっている場合は不要です。
~/workspace/xapp9(layout*)$ gem list
以下のコマンドを使うことで、gemのインストール場所が表示されます。なお、"bootstrap-sass"の部分は任意のアプリケーション名に変えてください。
~/workspace/xapp9(layout*)$ gem which bootstrap-sass
/home/action/.gem/ruby/2.1.1/gems/bootstrap-sass-3.2.0.1/lib/bootstrap-sass.rb