Five Common Rails Mistakes
編集(2012-06-02): 全訳されたものがあります!こちらのサイト様の方をご参照ください!http://d.hatena.ne.jp/suginoy/20120515/p1
Ruby5で紹介されていた以下の記事を大体翻訳します。
2012-05-27: 途中になったまま、なかなか作業継続できないので公開してしまいます。
Five Common Rails Mistakes
http://www.mikeperham.com/2012/05/05/five-common-rails-mistakes/
私は今までRailsを使った仕事をしてきました。その中で、よくある5つの間違いを紹介します。
1. Migrations with no schema specifics
データモデルはアプリケーションの核になります。スキーマの制約なしでは、他のフィールドへの依存がなくなるまで、どんどん悪いデータになっていきます。
以下はcontactスキーマです。
create_table "contacts" do |t| t.integer "user_id" t.string "name" t.string "phone" t.string "email" end
何が必要でしょうか?
ContactはUserにbelong_toであり、名前を持つでしょう。これを保証するために、データベースに制約を付ける必要があります。:null => falseを付与することで、バリデーションにバグがあって、失敗しても、保存はされず、modelに一貫性を持たせることができます。
create_table "contacts" do |t| t.integer "user_id", :null => false t.string "name", :null => false t.string "phone" t.string "email" end
さらに、:limit => Nを使うとStringのサイズを指定できます。Stringのデフォルトは255ですが、電話の場合そんなにいらないでしょう。
2. Object-Oriented Programming
ほとんどのRailsプログラマはオブジェクト指向なRubyのコードを書きません。
modelとcontrollerを設置することでMVCなコードを書きます。
/libにクラスメソッドと一緒にモジュールを作成します。
しかし、2-3年前に開発者たちは「RailsはただのRubyで、Rails関係なくオブジェクトを作成して構成できる」ということに気づいたのです。