アーカイブ

2007 年 9 月 のアーカイブ

acts_as_authenticatedを読む。 このエントリーを含むはてなブックマーク はてなブックマーク - acts_as_authenticatedを読む。

2007 年 9 月 26 日 Comments off

行けなかったけれど聞きたかったRails勉強会@東京第22回のacts_as_authenticated話のレポートをYuguiさんが書かれていたので、読みながら気になったところを書き出して、放置してしまっていたメモを大公開。だれかの「なるほど」の種になれば。

Yuguiさんの「acts_as_authenticatedとは」とともに。レポートの詳細っぷりはありがたいです。

2007年09月 @ 過去ログ @ ratio – rational – irrational @ IDM

最初の2行はRailsでモデルオブジェクトを編集するときの頻出パターンだね。と、まあ初心者セッションだから、その辺もフォロー。

こういう、教科書に載ってない的な話が聞けるのが勉強会のうれしいところだよなぁ。

2007年09月 @ 過去ログ @ ratio – rational – irrational @ IDM

実はRailsのvalidationはActiveRecordで自動生成された属性以外にも使える。その属性がありさえすればよい。

これは覚えておくと得しそう。

AuthenticatedSystem#current_user()
ココ、ぱっとみて:falseってなんだ、と思ったら

2007年09月 @ 過去ログ @ ratio – rational – irrational @ IDM

ここで、:falseなんていう変なシンボルを使ってる意味がわかんないよねー、と私と諸橋さんはセッションでぶちぶち言ってたけど、今気がついた。

お、

2007年09月 @ 過去ログ @ ratio – rational – irrational @ IDM

あちこちで@current_user ||=というコードが実行されることになるから、「ログイン状態未知」と「非ログイン状態」を区別する必要がある。ここで@current_userにnilとかfalseを入れておくと本来は「非ログイン状態」であることは既知の筈なのに、毎回ログインを試みて失敗することになり無駄なクエリが走るのだ。それで、「無効値であることが見た目に分かりやすく、かつ、Rubyにとっては真として評価される」値が必要なんだ。

おー!「||=」のためか、なるほど!

AccountController#signup()
beginとendで囲っていない、rescueがこんな風に書けるんだ。

generate authenticatedしたあとに出来たファイルをひとつひとつ眺めてみたところ、

  • app/controllers/account_controller.rb
  • app/models/user.rb
  • lib/authenticated_system.rb

の3つを読めば把握できるみたいだ。まだまだなるほどの連続、楽しい。

[ref.] Acts as Authenticated

カテゴリー: Rails タグ:

継承の書き方。 このエントリーを含むはてなブックマーク はてなブックマーク - 継承の書き方。

2007 年 9 月 15 日 コメント 2 件

OOエンジニアの輪! ~ 第 38 回 笹田 耕一さんの巻 ~

クラスの継承するときには、こんな風に書くんですけど、実は継承元クラス指定の部分には、任意の expression が書けるので、例えば、ここでクラス定義を書くとか。

ΩΩΩ < ナ、ナンダッテー!! inh_test.rb

  1 class Foo
2   def hoge
3     puts 'Yes!'
4   end
5 end
6
7 class Bar < Foo; end
8
9 Bar.new.hoge        #=> Yes!

inh_test2.rb

  1 class Bar < (class Foo; def hoge; puts 'Yes!'; end; end); end
2
3 Bar.new.hoge        #=> inh_test2.rb:1: superclass must be a Class (NilClass given) (TypeError)

あれ、ちがうのか。
たぶん実際に使うことはないんだろうけど、どんなソースなのか気になる。

お客様の中でこのソースをご存じの方は居られませんかー?
居られませんかー?

カテゴリー: Rails タグ:

while trueとloopのちがい。 このエントリーを含むはてなブックマーク はてなブックマーク - while trueとloopのちがい。

2007 年 9 月 14 日 コメント 1 件

[ruby-list:20222] Re: while TRUE とloop の違いを教えてください

制御構造であるwhileとイテレータであるloopの間の本質的な違い はloopの方はループ本体がブロックである点です。そしてブロック は新たなスコープを導入します。

おー。

# 100で止まる
while true
foo ||= 0; foo += 1; puts foo; break if foo > 99
end
# 止まらない
loop do
foo ||= 0; foo += 1; puts foo; break if foo > 99
end

なるほど!

カテゴリー: Ruby タグ:

小さな事からこつこつと。 このエントリーを含むはてなブックマーク はてなブックマーク - 小さな事からこつこつと。

2007 年 9 月 13 日 Comments off

【ITpro Challenge!】「世界を変えられるのはコードだけ」—はてなCTO伊藤直也氏が明かす“ネトゲ廃人”から“なりたかった自分へ”の道のり:ITpro

伊藤氏は29才で,同い年にスーパーハッカーやバイナリアン,自分よりももっとすごい技術者がいるという。「いきなり頂上を見ると萎える。でも,コンプレックスは成長の兆し」

じつは自分も同い年。まさに76世代で萎えることがよくありますが、こういう話が聞けると元気が出ます。
コンプレックスも大事に育てていこう。

カテゴリー: 日記 タグ:

autotestが止まらない。その2 このエントリーを含むはてなブックマーク はてなブックマーク - autotestが止まらない。その2

2007 年 9 月 12 日 コメント 2 件

Re:「autotestが止まらない。」 – 角谷HTML化計画 (2007-09-12)

$HOME/.autotest

 require 'autotest/screen'
Autotest::HOOKS.delete(:interrupt)

これで止まるようになりました。正しい対処かどうかはわかりませんが。

角谷さんにヒントをいただいたので深追いしてみました。
長くなるので、詳細は以下の通り。

続きを読む…

カテゴリー: Rails タグ:

autotestが止まらない。 このエントリーを含むはてなブックマーク はてなブックマーク - autotestが止まらない。

2007 年 9 月 12 日 コメント 1 件

テストケースを増やして、いつの頃からかCtrl+C*2ではautotestが止まってくれなくなった。
カッとなって連打しても全然ダメ。

だから次は絶対止めるために 僕は"kill -9"だけは最後までとっておくー!

[ref.] Railsのテスト環境。

カテゴリー: Rails タグ:

iPod classicがやって来るヤァ!ヤァ!ヤァ! このエントリーを含むはてなブックマーク はてなブックマーク - iPod classicがやって来るヤァ!ヤァ!ヤァ!

2007 年 9 月 10 日 Comments off

ホールドできないのは致命傷ですよねーそうですよねー。

twitter_ipod.jpg

ちなみにclassicなのはストレージ用途が8割を占めているため(ヲ

カテゴリー: 日記 タグ:

影響力の武器。 このエントリーを含むはてなブックマーク はてなブックマーク - 影響力の武器。

2007 年 9 月 9 日 Comments off
影響力の武器[第二版] 影響力の武器[第二版]
誠信書房(2007-09-14)

  • (著)ロバート・B・チャルディーニ
  • (翻訳)社会行動研究会

誠信書房
新品価格:¥ 2,940
ASIN:4414304164

  • いつの間にか相手の思い通りになってしまっていた。
  • 自分で選んだはずなのだけれどなぜか腑に落ちない。

そんなことになってしまうのはどんな原因があるのか、よく使われる手口について著者が実際に仕掛ける側に回った体験に基づいて書かれた本。
たしかに自分がその状況になったらそうするだろうな、と思う場面ばかり。
積ん読になっていた初版を最近やっと消化したと思ったら次が発表されていた。
予約した。カチッ・サー

影響力の武器―なぜ、人は動かされるのか 影響力の武器―なぜ、人は動かされるのか
誠信書房(1991-09-01)

  • (著)ロバート・B・チャルディーニ
  • (翻訳)社会行動研究会

誠信書房
新品価格:¥ 3,465
中古価格:¥ 2,900
ASIN:4414302692

カテゴリー: カテゴれない本たち タグ:

mooきたぁ。 このエントリーを含むはてなブックマーク はてなブックマーク - mooきたぁ。

2007 年 9 月 6 日 コメント 2 件

個人用名刺として欲しいなーと思っていたmooのカードを作りました。

moo.jpg

今回は、あまり写真とらないくせに「欲しい」が先行したのでパターンが少ないのですが、次回までにはFlickrにため込もうと思います。
ちなみにケースはフリスクケース・・・ではなく無印の携帯灰皿に。たしかにピッタリだこりゃ。

[ref.] Bouzucast – MOO mini-cardのケースにぴったりな無印良品の携帯灰皿

カテゴリー: 日記 タグ:

RangeとArrayと===と。 このエントリーを含むはてなブックマーク はてなブックマーク - RangeとArrayと===と。

2007 年 9 月 5 日 Comments off
>> (0..9) === 5
=> true

が出来るから

>> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] === 5
=> false

が出来るかと思ったらダメだったという話。
Range#===はinclude?のエイリアスになっているようだけどArrayでは違うみたいだ。へえぇ。

[ref.] Rubyリファレンスマニュアル – Range,
Rubyリファレンスマニュアル – Array

カテゴリー: Ruby タグ: