2011-01-01から1年間の記事一覧

YAMLをDRYに書く

(1)共通化したい情報に「&任意の名前」というフォーマットで名前を付ける。以下の例では&addressがこれに相当。(2)共通化した情報を使用するには「 address: &address zip_code: 郵便番号 prefecture: 都道府県 city: 市区町村 street: 番地 building: 建物 …

非ActiveRecordの検証エラーメッセージをローカライズする

ActiveRecordを継承しないクラスに対し、バリデーションとそのエラーメッセージをローカライズする方法。 (1)バリデーション機能を持つクラスの実装 ポイントは冒頭のmixin。これによりActiveRecordのような振る舞いが可能となり、validatesメソッドが使える…

IE7でファイルをダウンロードする際、ファイル名が文字化けする問題

この問題はファイル名をURLエンコードすると解決する。 if request.env['HTTP_USER_AGENT'] =~ /MSIE 7/ file_name = ERB::Util.url_encode(file_name) end

自己解決 インポートにRESTなURL

(前日の日記の続き) HTTPメソッドで単数、複数を表せないのならリソースで表す他ない。 ということで インポート開始画面 GET /import/customers/new インポート実行 POST /import/customers 良い感じだと思うな。

インポートにRESTなURL

Railsで何かしらのリソースをインポートする際のURLはどのようにしたらRESTになるのか?それがわからないという話。 <顧客情報のインポートを仮定した場合> リソースは何か?→顧客 操作は何か?→リソースの作成 そのURLは?→POST /customers ↓ これだと単…

同じアソシエーションを複数回定義するとaccepts_nested_attributes_forで既存レコードの保存ができなくなる

# ex class Diary < ActiveRecord::Base has_many :comments has_many :comments accepts_nested_attributes_for :comments このようにするとDiaryインスタンスからcommentsアソシエーションをまとめて保存することができなくなる。 保存できないのは既存com…

accepts_nested_attributes_forで子から親もまとめて作成できる

ポイントは2つ ①子のモデルにaccepts_nested_attributes_forを定義 class Child belongs_to :parent accepts_nested_attributes_for :parent end ②fields_forで親のフィールドオブジェクトを生成する際に親のフィールドのname属性を自力で指定する。 親から…

Railsのフォーム検証プラグイン(Client Side Validations)を試す

モデルに設定したバリデーションをクライアントサイドで再現するClient Side Validationsを試してちょっとハマったのでメモ。普通に使う分には下記サイトに書かれてあることを素直にやっていけば期待通りに動いてくれる・・・ https://github.com/bcardarell…