ruby
今の会社でRailsを使うようになって、いわゆるマイグレーションの仕組み超便利。 なんですが、MySQLを使っているのにidや数値にunsignedを指定できないのどうなんだろう。 他のDBはサポートしてないからいらないよねっていうのも分かるんですが、せっかくア…
前回のでアプリケーションのテストがMiniTest::Specで実行できるようになったので、今度はJavaScriptのユニットテストをコマンドラインから実行できるようにする。 慣れてるMochaを使ってテストが書けるkonachaと、konachaが使用するCapybaraのPhantomJSドラ…
Rails4からはActiveSupport::TestCaseがTest::UnitからMiniTest::Unit::TestCaseのサブクラスに変わっている。 MiniTestはSpecなDSLをサポートしているので、RSpecを入れずともBDDスタイルでテストが書けるようになる。 ということで、いろいろtest_helper.r…
ActiveSupportのコア拡張を使うとめちゃ綺麗に書けて感動した。 今日 from = Time.now.at_beginning_of_day to = from + 1.day items = Item.where(created_at: from...to).order(created_at: :desc) 今月 from = Time.now.at_beginning_of_month to = from …
Railsのセッション情報はこちらの記事にあるように、RubyのMarshalでシリアライズされ、Base64エンコードされたものがクッキーなどに保存される。 ただ、Ruby以外では復元が難しいため、Node.jsなど別言語で書かれたサーバーアプリケーションとセッションを…
selectとかselect_tagとかcollection_selectとかいろいろあってオプションの指定も微妙に違ってたり分かりにくい。 ActiveRecordの配列と普通の配列を同じように扱えて、name属性を自由に定義したい。 いろいろ試してみたところ、select_tagとoptions_for_se…
なんか日本語が不自由な感じ。。 Railsのroutes.rbで普通にresource(s)を使う場合はidを使ったURLルートが作られる。 resource 'foo' do resources 'bars' end # bundle exec routes GET /foo/:foo_id/bars(.:format) bars#index POST /foo/:foo_id/bars(.:f…
アプリのデプロイやDBのマイグレーションに Capistrano を使っているのですが、PM やディレクターでもテンプレートの修正くらいならコミットしてデプロイできるようなやり方をいろいろ探していて、Capistrano の WebUI であるWebistrano に行き着きました。…