Rails

attachment_fu プラグインの脆弱性っぽいものについて

報告して修正もしてもらえたのでメモ。 以前 穴があると言ったプラグインは attachment_fu です。READMEに書いてあるような mass assignment @attachable_file = AttachmentMetadataModel.new(params[:attachable]) を行っている場合、プラグインやサーバの…

mass assignment を安全にするプラグイン?

はじめてRailsに触ったとき一番「落とし穴」と感じたのがmass assignment だった。 たとえば下のような、attr_accessible を忘れたモデルの会員制ブログアプリがあって、 class Entry belongs_to :user end class User has_many :entries end scaffold で自…

プラグインの品質とか

前回の続きをやろうと思ったんだけど、使おうと思っていたRailsプラグインに結構な穴があったので中止。報告はしたいんだけど英語書けないから時間かかるんだよな。脆弱性報告メールのテンプレとかあればいいのに。Ruby on Rails Code Quality Checklist で…

Date.new の第四引数

昨日、Rails の日付・時刻入力周りを見ていて初めて知ったんだけど、Date.new は年・月・日のほかに省略可能な第四引数として「グレゴリオ歴の開始日」を「ユリウス日」で指定できるらしい。何も指定しなかった場合は、デフォルトの Date::ITALY の値が使わ…

不正な日付のバリデーション

たとえばブログ記事のモデルEntryがあって、はてなダイアリーみたいに投稿者が投稿日を指定できるとする。日時や日付を入力したい場合、投稿画面では以下のように datetime_select や date_select を使うと凄く楽だ(posted_time は datetime カラム、posted…

とりあえず新規アプリケーションを作ってユーザ認証とかが動くまで

2008-09-13 ちょっと修正。sqlite3-ruby も必要っぽかった。 仕事ではRails 1.2.6しか触ってないし既にテンプレありの状態からだったので、最新のRails 2.1.1で新規アプリをどう作るか確かめるの巻。 環境は Mac OS 10.4 だけどRubyが動けばどこでも問題ない…

表形式のフォームの書き方?

Strutsでも面倒くさかった、Excelシート的なHTMLテーブル的な二次元データ構造用のフォームはどう書くか、 相変わらず何がベストなのかはよくわからないが、Rails 2.1.0 だととりあえず以下のようにするとそれなりにできることはできるらしい。たとえばアド…

ようやくRuby/Railsを使いだした

2ヶ月前くらいから、遅ればせながら Ruby on Railsを仕事で使い出した。諸般の理由でちょっと古い 1.2.6 なんですが。今までずっとJavaだったので、仕事でRubyを使うのも初めて。感じたことを書いてみる。 やってることは Struts とほとんど変わらないので、…

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

Google で alias_attribute を検索しても日本語のページが6件しか引っかからないので一応メモしてみる。クラスの属性に別名をつけたい場合のために、ActiveSupport では Module#alias_attribute というメソッドが用意されている。 たとえば、ブログの記事を…