MinorProbrem

グダグダ日記

Archive for the ‘ruby’ Category

GJ!をASPしてみる

without comments

散髪に行ったら娘が知らないオジサンを見るみたいな目でガン泣きだよ!!

バリバリ開発の僕が営業チックな部署に配属されると言うパワハラを受けるにあたって、自分のスキルを知らしめるためにこんなものを作ってみた。うそ。結構前から作ってました。

GJ!をASPで

railsで初めて作りました。@herokugarden。

詳しい説明はそのうち。

拍手サンプル

確認画面サンプル

ユーザー登録はそのうち始めます。まだ作り中なんで、いろいろガラっと変わるかもしれません。

Written by Hex68

4月 6th, 2009 at 1:53 am

Posted in GJ!(Web拍手),ruby

Tagged with , ,

【restful_authentication】認証メールとDBのactivation_codeが全然違う件

with 3 comments

メールでユーザー認証とか格好いいよね

railsにrestful_authenticationというプラグインがある。

いざ実装すると面倒くさいユーザー認証のあたりを受け持ってくれる。

しかもよくWebサイトでのユーザー登録で見かける、ブラウザで登録→登録したメールアドレスに確認メールを投げる→メール中のactivation用URLに飛ぶことでユーザー登録完了という流れを簡単に実装してくれる。(プラスしてacts_as_state_machineプラグインも使用するけど)

ちょっと今作っているWebサイトがあって、それに使えそうなので試してみた。

http://terrazilog.quipu.jp/?eid=585865(てらじろぐ)

上記サイト様に詳しく説明されていたのでそれに従う。

要約すると以下

  1. plugin入れーの
  2. userとsessionモデルgenerateしーの
  3. routes.rbにルート書きーの
  4. SMTPサーバにメールを投げる設定しーの
  5. オブザーバ使えるようにしーの

嫁ぎー

以上。で、db:createとdb:migrateすると、DBとテーブルが作られます。

で、試しに/users/newからユーザーの登録処理をやってみる。

無事登録したメールアドレスに、ユーザー認証用のURLが書かれたメールが飛んだ。

activation_code偽装

これでよかった、実験は成功で終わらないのが僕の悪いところ。メールにかかれた認証URLをクリックしても、ユーザーのstateがpending(activeになる前の保留状態)から変わらない。

何度登録を繰り返してもうまくいかないので、usersテーブルの中のactivation_codeを確認する。

あれ?activation_codeがメールに書かれてるものと違っている・・・?

メールに書かれたURLは

http://localhost:3000/activate/XXXXXXXXXXXXXXX

みたいな感じで、XXXのところがactivationコードになるのだけど、ここがDBに登録されているものとまったく違っている。これじゃあ認証できないわけだ。

調べてみると、user_mailerモデルのsignup_notification(送信するメールをごにょごにょするところ)までのactivation_codeと、userコントローラーでcreateが終わった時でactivation_codeが異なっている様だ。

要するに、ここにアクセスしてくださいね、とメールを送った後に、なぜかそのURLを書き換えてしまっている状態。

解決方法

activation_codeを複数回設定しているとしか思えないのだけど、ソースをおったけどよく判りませんでした。

なので僕お得意のやっつけで、

メールの設定をしているsignup_notificationの中で、userの設定をDBに書き込んで対処しました。

class UserMailer < ActionMailer::Base

def signup_notification(user)

user.save

・・・・

すげー強引。

いちおうこれでやったら、DBの中とメールで送られてきたactivation_codeが等しいものになりました。

このativation_codeが変わってしまうのがどうしても判らなくて、先達の教えを請おうといつものようにGoogleったんだけど、なぜか全然同じような問題に関する記述が見当たらなかった。え?なんで?僕だけなの?なんで???

メール認証で間違ったURLを送りつけるとかけっこうクリティカルな問題なのに、他に聞かないってことは僕の環境のせいなんだろうか。

ちなみに環境はrails2.2.2、mysql5.0.27、pluginは多分最新のもの、OSはwindowsXPです。

対処はわかっても今だ原因は判らないというモヤモヤ。

Written by Hex68

2月 2nd, 2009 at 10:53 pm

さくらにhpricot(続報)

without comments

YATTAHHHHHHHHHHHHHHH!!(マシ・オカ)

昨日から悩んでたさくらレンタルサーバーでhpricotを使うってのができたよ。

単純に、gemへのパスが通ってなかっただけでした。ケアレスケアレス。

vi $HOME/.cshrc

で開いて

GEM_HOMEへのパスを書いてあげないと、しっかりとgemを見に行ってくれません。だから昨日requireした時こけてたのか。

setenv GEM_HOME $HOME/local/lib/ruby/gems/1.8/

僕の環境(ruby1.8で/localにインストール)の場合、上記の1行を加えてから保存。その後source $HOME/.cshrcの呪文で見事、hpricotが使えるようになりました。よっしゃよっしゃ。

Written by Hex68

12月 14th, 2008 at 12:00 am

さくらにhpricotでスクレイピングバフンバフーン

without comments

さくらサーバーにhpricotを入れて、スクレイピングなぞ嗜もう、お、オレ、超Web屋っぽくね?なんて悦に入ろうとしたら超苦労した。

というか、まだ解決してないんだけど、とりあえずの備忘録。解決しました。最後に追記しています。

Read the rest of this entry »

Written by Hex68

12月 13th, 2008 at 12:48 am

rails de Amazon (AMAZON::ECSプラグイン)はソート順おかしくね?

with one comment

こんばんは。最近は家でも会社でもめっきりrubyばっかりいじっているRubyistな僕です。

誕生石もルビーだし

きょうびRubyっつーたらrailsでしょ、ってことでrailにも手を出している。

ところで僕はよくブックオフで漫画を買うんだけど、古本ってことで当然売りに出ている巻から買っていくもんだから、長期連載ものを集めてたりするともう、あれー、どこまで買ったけな?なんてことが良くあって、ヘタこくと同じ巻を被って購入してしまったりして後で悲しい思いをすることになる

なんで、簡単に持っている本(とかDVDとか)の登録、閲覧ができるような蔵書管理用のアプリをrailsの練習を兼ねて作ってます。

Read the rest of this entry »

Written by Hex68

12月 3rd, 2008 at 10:12 pm

Vaioノートにubuntu、無線LANもついてます

with 3 comments

不景気の昨今、明日突然に会社をおん出されてもツブシがきくように、ここらでruby on railsでもまじめにやっとくか、ってことで家PCにインストール。

しばらくはwindowsでやってたんだけど、windowsだとなぜかgemが通らなかったりしてもうディスプレイを窓から投げたいくらいイライラさせられた。ゲイツ君ンところの子は、まったくダメな子だなあ。

なんでVmwareにFedoraをつっこんでみたんだけど、一個ノートPC(VAIO)が余っていたことを思い出したので、もうこいつをLinuxにreplaceして開発マシン&簡易サーバーにしたててしまおうと。

Read the rest of this entry »

Written by Hex68

11月 16th, 2008 at 4:06 pm

Posted in ruby

Tagged with , , , , , , ,

Windowsにrailsをインストールしたときに出たエラー

without comments

ちょっとしたWebアプリを作ってみたくなったので、railsを自分のWindowsPCにインストールしようと思ったんだ。

てっとりばやく、と言うことでOne Click Installerでインストール

http://rubyforge.org/projects/rubyinstaller/

インストールは無事終わり、そのあとお決まりのgemを使ってのrailsインストールでエラーが出た。

Read the rest of this entry »

Written by Hex68

7月 12th, 2008 at 2:04 am

Posted in ruby

Tagged with , , , ,