Rails開発をする上で知っておいた方が良さそうなこと

先週の木曜日、Speeeさんで開催された第2回SpeeeTeckPartyにお邪魔して発表してきました。

これは食 x 技術をテーマにした勉強会で、第1回は「寿司 x Ad」だったそうなんですが、なんでも今回は「からあげ x Ruby」だそうで、であればささたつさんしかいない!という人選だったそうですw
(お寿司食べたかったな・・w

というわけで、Rails開発するなら知っておくと良さそうなことを10個(質疑応答で一つ増えて11個になったりもしましたが!)紹介してきました。以下がスライドです。



他にもいろいろとあると思いますが、少しでも役に立てば幸いです :D

capistrano3でRailsアプリをデプロイしたらassets:precompileが実行されない悲しみ

だいぶ間隔が空いてしまった…。みなさまお久しぶりです。最近は花粉が飛んでいて、外出時にはマスクが欠かせないささたつです。

capistrano_logo


さて、今回はcapistrano3の話なんですが、cap production deploy とかしたときに assets:precompile が全然実行されません。なんでや!!ヽ(#`Д´)ノ

Capfile に以下の設定はちゃんと入れているんですが><

require 'capistrano/rails/assets'

あれー、、と思っていたら、この処理は role が web のものしか実行されないんですね。

namespace :assets do
  task :precompile do
    on release_roles(fetch(:assets_roles)) do # set :assets_roles, [:web] されている
      within release_path do
        with rails_env: fetch(:rails_env) do
        execute :rake, "assets:precompile"
      end
    end
  end
end

ので、以下のどちらかの対応が必要になります。

set :assets_roles, [:web, :app] # assets_roles に対象とする role を追加する

or

server 'host01', roles: %w(web app) # server の role を追加する

そしたら無事に assets:precompile が実行されるようになりました〜。ヨカッタヨカッタ :D

参考リンク:capistrano/rails

2014年を振り返ってみて良かったこと&もの

みなさま、お疲れさまです。ささたつです。
あっという間に年末を迎え、今年もあと少しですね。みなさまいかがお過ごしでしょうか。

今年は、、いろいろありましたが、一言でいうと新しいことにチャレンジできた一年でした。新しいことをやると上手くいかないことも多いですが、日々わからないながらも頑張っています。

そうそう、今年は頑張って早起きを続けて、早起きする習慣を付けることが出来ました!来年も続けたいことは少しずつ習慣化していきたいなと思います。毎日ちょっとずつでも、365日続けたらすごいことになりますからね。ブログ書くのも習慣にせねば。(すごい間が空いてしまった)

さて、今年はいろいろと買ったりいただいたりしたんですが、その中でも特にルンバとミキサーは良かったのでちょっと紹介してみたいと思います。

まずはルンバ!

使ってみるまでは「そんなに便利なのかなぁ・・?」程度だったのですが、家にいない間に動作させるようにしてみたらとても便利。帰ってきたときにはキレイになっています。動作中はちょっと五月蝿いので、家にいないときに動作させるくらいが良いかな〜と思いますが><

あと、ときどき溝とかにはまって動けなくなってたりするのドジっ子ぽくてかわいいです。


もうひとつはミキサー!

これでグリーンスムージーを作ってもらって飲んでいるのですがすごく良いです。健康にも良いし、何より美味しい。やはり朝はフルーツを食べるに限りますね〜。いつも作ってもらっているので奥様に感謝です :)

最近は生姜湯も好きでよく飲んでいたりして、どんどんOL化しているw


どちらもとっても役に立ってます。

という感じですが(謎)、2015年もどうぞよろしくお願いします。

requireとrequire_relativeの違いとは?

先日、require_relativeっていうのを見かけて、これなんだろうと思って調べました!どうもRuby1.9.2から導入されたモジュールみたいですね。

そもそも、Ruby1.9.2以降とそれより前のバージョンとでは、$LOAD_PATHの扱いに違いがあります。例えば、Ruby1.8.7では$LOAD_PATHにはカレントディレクトリも含まれます。

$ rbenv shell 1.8.7-p375
$ ruby -e 'puts $LOAD_PATH'
/Users/sasata299/.rbenv/versions/1.8.7-p375/lib/ruby/site_ruby/1.8
/Users/sasata299/.rbenv/versions/1.8.7-p375/lib/ruby/site_ruby/1.8/i686-darwin13.4.0
/Users/sasata299/.rbenv/versions/1.8.7-p375/lib/ruby/site_ruby
/Users/sasata299/.rbenv/versions/1.8.7-p375/lib/ruby/vendor_ruby/1.8
/Users/sasata299/.rbenv/versions/1.8.7-p375/lib/ruby/vendor_ruby/1.8/i686-darwin13.4.0
/Users/sasata299/.rbenv/versions/1.8.7-p375/lib/ruby/vendor_ruby
/Users/sasata299/.rbenv/versions/1.8.7-p375/lib/ruby/1.8
/Users/sasata299/.rbenv/versions/1.8.7-p375/lib/ruby/1.8/i686-darwin13.4.0
.

一方、Ruby2.1.2では、カレントディレクトリが含まれません。

$ rbenv shell 2.1.2
$ ruby -e 'puts $LOAD_PATH'
/Users/sasata299/.rbenv/versions/2.1.2/lib/ruby/site_ruby/2.1.0
/Users/sasata299/.rbenv/versions/2.1.2/lib/ruby/site_ruby/2.1.0/x86_64-darwin13.0
/Users/sasata299/.rbenv/versions/2.1.2/lib/ruby/site_ruby
/Users/sasata299/.rbenv/versions/2.1.2/lib/ruby/vendor_ruby/2.1.0
/Users/sasata299/.rbenv/versions/2.1.2/lib/ruby/vendor_ruby/2.1.0/x86_64-darwin13.0
/Users/sasata299/.rbenv/versions/2.1.2/lib/ruby/vendor_ruby
/Users/sasata299/.rbenv/versions/2.1.2/lib/ruby/2.1.0
/Users/sasata299/.rbenv/versions/2.1.2/lib/ruby/2.1.0/x86_64-darwin13.0

そのため、Ruby2.1.2で、カレントディレクトリにあるファイルを単純にはrequireすることが出来なくなっています。カレントディレクトリにあるファイルをrequireするためには、$LOAD_PATHにカレントディレクトリ (.) を追加するか、もしくは以下のように相対パスで指定します。

require "./foobar"

ただこれも万能というわけでは無いので注意です。違うディレクトリから実行しようとすると当たり前ですがうまく動作しません。。

これに対する解決策が、require_relativeです。require_relativeを使うことで、そのファイルからの相対パスで指定することが出来ます。違うディレクトリから実行しても動作します。

require_relative "foobar"

ということで、Ruby1.9.2以上で$LOAD_PATHに含まれないファイルを読み込む必要があるときにはrequire_relativeを使いましょう :)

ヒトメディアに入社しています

だいぶ今更感はあるのですが、、

7月から「教育で世界をよくする」をビジョンに掲げているヒトメディアという会社に入社して、とある新規事業に関わっています。頑張っています。

ささたつの欲しいもの

karaage299 at gmail.com




寄稿した記事

Ruby Freaks Lounge (28,30)
NoSQLを試してみる

作ったもの

カープ戦速報ボット
まとめったー
YouTube Oricon Ranking
NicoNicoブックマーク
ねたばれ見る?


ブックマーク数



購読者数



 
RSS登録
Subscribe with livedoor Reader