Archive for category Ruby on Rails

cancan でモテカワ♥愛され権限管理

Time to Read

10分

cancan gem (!= CanCam) は、ウェブアプリケーションの「認可」をつかさどるライブラリ。

重要なのは、「認証」ではなく「認可」のみを受け持っているということで、要するに権限管理だけを「関心事」として持つライブラリであるということ。したがって、認証側は、 devise でも、 warden + omniauth でも、 Railscast のように authlogic でも、自力実装でも大丈夫だということ。キレイ目でもカジュアルダウンしたときにもコーデに使える万能アイテムのようなものですかね。

当ブログにしては珍しく Rails スリ~ で試してみよう。

Read the rest of this entry »

 

shibuya.rb(仮名)、第一回簡易報告+ ActiveSupport の便利 tips

Time to Read

5分

11月25日、有志にておこなった、渋谷近辺の Rubyist とそうでもない Rubyist による勉強会。今回は、 ActiveSupport のソースを読んでみた。

会場は最近「株式会社 VOYAGE GROUP に行ってきた!」で話題にもなった VOYAGE GROUP さん提供でした。

見たファイルとそのメモ

公式 github repo から落としてきた。下記、抜けがあるかもしれません。

Read the rest of this entry »

 

退会画面 などに簡単に CAPTCHA を表示する方法

Time to Read

2分

コメント投稿、退会画面など、サービスの一部に CAPTCHA を表示したいときがあるかと思います。

今回は、 Rack 対応の Ruby 製フレームワークを使っている場合、簡単なライブラリ+ reCAPTCHA で、たとえば、退会画面に CAPTCHA を表示することが出来るので、そちらを紹介します。

実装方法

Read the rest of this entry »

 

[Rails3+Devise+AASM] Devise利用時は、activeというstateを作るべきではない件

Time to Read

30秒

Devise 配下のUserと言うモデルを、AASMを利用して「inactive -> redistered -> active」みたいに遷移させようとしてハマった。

53
54
55
56
57
58
59
60
61
62
63
      def valid_for_authentication?
        if active?
          block_given? ? yield : true
        else
          inactive_message
        end
      end
 
      def active?
        true
      end

この「active?」が上書きされると予想不可能な挙動になる。なので当然、

1
2
3
4
class User < ActiveRecord::Base
  include AASM
  aasm_state :active
end

とかするとまずいっぽい。具体的には、初期状態を「:initialized」とか別の名前にしていると、User#active? はfalseなので、サインアップの遷移が想定どおりいかなくなったりとか。うまく言えないですが。

:activated」とか「:_active」とか別の名前にして対応するのが手っ取り早いか。まあ、微妙に機能がかぶってるライブラリ二つなのでしょうがない気もする。

 

Nginx+SSL+Passenger-Railsのセットアップ

Time to Read

30分

ゴール

Nginxを、PassengerとSSLを有効にした状態でコンパイルし、配備する。いっしょに、自分CAで署名したSSL証明書も作って準備してみる。

Nginxを、SSL、passenger込みでコンパイルする

Nginx+Passengerであれば、通常 passenger-install-nginx-module を利用すると思うが、何も考えていないとSSLが有効化されないでコンパイルされる。今回、SSLを有功にしてコンパイルする手順をメモした。

Read the rest of this entry »