タグ

ブックマーク / halflife.hatenadiary.org (2)

  • 属性の別名を作成するやり方 - Halflife

    Google で alias_attribute を検索しても日語のページが6件しか引っかからないので一応メモしてみる。 クラスの属性に別名をつけたい場合のために、ActiveSupport では Module#alias_attribute というメソッドが用意されている。 たとえば、ブログの記事を保持する posts テーブルに subject というカラムがあるんだけど、あとから title という名前でも参照したくなった、という場合は下のようにする。 class Post < ActiveRecord::Base alias_attribute :title, :subject endこれだけ。alias や alias_method に対するメリットは alias は「その時点での」名前に対する別名を作成するので、先に「元のメソッド」が定義されている必要がある。なので、上の A

    属性の別名を作成するやり方 - Halflife
  • 不正な日付のバリデーション - Halflife

    たとえばブログ記事のモデルEntryがあって、はてなダイアリーみたいに投稿者が投稿日を指定できるとする。日時や日付を入力したい場合、投稿画面では以下のように datetime_select や date_select を使うと凄く楽だ(posted_time は datetime カラム、posted_date は date カラムだとする)。 <%- form_for @entry do |f| -%> 時刻も指定:<%= f.datetime_select :posted_time %><br /> 日付のみ:<%= f.date_select :posted_date %><br /> <% # 以下略 %> この場合、日付選択部分で「2月31日」のような不正な日付を選択しても、ActiveRecord::Base が勝手に「3月2日」のような(余計な日数分だけ後ろにずらした)日付に

    不正な日付のバリデーション - Halflife
  • 1