昔の Ruby On Rails のブログ

注意! RoR2 とかの話です。今は更新していません。昔、はてなダイアリーで書いていたブログを移行しました。

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

restful-authentication の Authentication::ByPassword をコードリーディング

使い方はこんな感じ User.rb class User < ActiveRecord::Base include Authentication include Authentication::ByPassword ... これで以下のような事が出来る。 勝手に validation が追加される(パスワードは6文字以上等) User.password_digest("hoge", …

コールバックと値の考察

えーっと、コールバックは protected に書くんだよね... protected def before_save self.kana = nil if kana.blank? end 上記は self を付けるべきなのか省略可能なのかが迷いどころ。 やってる事は empty 文字列が入るのが嫌なので nil にしている。 (こ…

jpmobile を使うので携帯の動作確認について

以前の日記で i-mode シミュレータ2 の事を書いたけどもっといいもの見っけ! FireMobileSimulator あと、 ssb も何かと役に立ちそう

O'REILLY の「実践Rails」の誤!?

「実践Rails」(244頁) *1の最初の「cd products_example_client」は「cd products_example」の間違いだよね!? 難しい本を読みながら頭はフル回転なので、間違いがあると非常に困る。P.S *1:Googleで本の内容が見えた!

sumメソッドについて

ActiveRecord と Enumerable の各々に sum があるので混同していた。DBフィールドに対しての sum Order.find(1).order_details.sum(:count) メソッドに対しての sum OrderDetail.all.collect(&:total).sum 一見すると、DBフィールドなのかメソッドなのか分か…

rails 2.1.2 + jpmobile

linux で動いていたのに windows で以下のエラー。 >rake test rake aborted! undefined method `to_sym' for [:versions]:Array何で!?結果、rake のバージョンが原因と思われる。 NG: 0.8.1 OK: 0.8.7(linux は 0.8.4 で OK だった)あ、あと DOCOMO の「i…

MySQL のバージョンによってモデルを new した時のデフォルト値が異なる

以下のマイグレーションがあります。 class CreateEntries < ActiveRecord::Migration def self.up create_table :entries do |t| t.integer :item_id, :null => false t.integer :user_id, :null => false t.integer :pair_id t.integer :applicant_id, :nu…

一覧画面をとことん突き止めたい

参考書なんかでは割とサラっと流される一覧画面。だけど、普通と思われる機能を総合的に実装するのにてこずっている。 ページネーション 表示項目のタイトルクリックによる並べ替え(昇順・降順) 絞込検索 CSV出力 ページネーション これは will_paginate …

ActiveRecord まわり

以前から気になっていた ActiveRecord::Base の User.all User.find(:all) はソースを見て同じ事が判明した。ほとんどの書籍は find(:all) で記述しているよね。 まぁRailsバージョンを意識しての事だと思うけど。 # File activerecord/lib/active_record/ba…

完全なテスト確認は?

DBとの同期が取れていないと不安なので、たまに以下の流れでテストしている。 各々の rakeタスクの詳細を理解していないので、無駄があるような気がする… svn update rake db:migrate:reset rake db:test:prepare rake db:fixtures:load rake

will_paginate でページ情報インフォメーション

redmine の pagination が良かったのでアイデアを拝借。 mislav-will_paginate-2.3.10 のドキュメントを読んだら、page_entries_info がよさげ。結果、 <%= " (#{@users.offset + 1}-#{@users.offset + @users.length}/#{@users.total_entries}) | 1ページに…

RESTful が理解できていない私

index アクションの画面で複数選択して削除したくなったので、以下を参考にさせてもらった。(感謝!) http://d.hatena.ne.jp/gedit/20090618/1245320340これでうまく機能したのだが、浅知恵で以下の考えが浮かんだ。 <% form_tag(:action=> 'plural_destro…

CSVの取込みで挫折

某地方銀行のCSVフォーマットは以下の通り(Windows-JIS, CR+LF) 2,"21- 7-10","04:10","振出","eパートナー料 "," "," 1,050"," 12,790","センター " 2,"21- 7-15","14:53","現入"," "," 510,000"," "," 327,790","36H" ポイントは 各項目はダブルクォートで囲…

マイグレーションで null を 非null に

ファイル名のルールを調べたが無いみたい。なので適当に命名 $ ruby script/generate migration ChangeColumnCostToMasterCommdities ロジックは空っぽだったので、書いた。change_column を1行づつ。 $ cat db/migrate/20091008031806_change_column_cost_t…

TestCase をコードリーディング

unit テストにコンストラクタを定義するとエラーになったので、未熟者がコードリーディングしてみる。 class AccountTest < ActiveSupport::TestCase def initialize super() end 引数なし super は () で明示するんだよな... /usr/lib/ruby/1.8/test/unit/t…

検索エンジン最適化(SEO)対策ってナンセンスだと思う

所詮、google や yahoo! の掌の上で踊らされている(仕様が変われば順位も変わる) かと言って、私に具体的な代替案がある訳ではありません(^^; 現状では十分成り立っている事を認めます。私が言いたいのは、「SEO対策専門の会社とかは将来大丈夫なのか?」って…

初心者に「ITは本当は信用性無し」を説明するページ

VeriSign が間違いを犯したことがある。 http://itpro.nikkeibp.co.jp/free/NT/NEWS/20010326/1/ プライバシーマーク(Pマーク)を取得している大企業が個人情報流出させても、お咎めなし http://slashdot.jp/security/article.pl?sid=07/03/23/1542213 セキ…