2011-07-11
SinatraのmodularスタイルでAuthlogicを使うときに起こりがちなエラー
authlogicをsinatraのmodularスタイルで使おうとするとsinatra_adapter.rbでこんな感じのエラーが出ることがある。
authlogic-3.0.3/lib/authlogic/controller_adapters/sinatra_adapter.rb:50:in `included': undefined method `before' for Sinatra::Request:Class (NoMethodError)
これは'sinatra'ではなく'sinatra/base'のみrequireした場合に起こる。
たぶんsinatraがmodularスタイルに対応する前に作成されたんじゃないかと思う。
なのでsinatra_adapter.rbを以下のようにSinatra::Baseを使うように変更。
# Sinatra::Request.send(:include, Authlogic::ControllerAdapters::SinatraAdapter::Adapter::Implementation) Sinatra::Base.send(:include, Authlogic::ControllerAdapters::SinatraAdapter::Adapter::Implementation)
これでどっちでも動くはず。あまりまだ動作をチェックしてない。とりあえずエラーはない。
動かしたバージョンは以下のとおり
- sinatra
- 1.2.6
- authlogic
- 3.0.3
問題はここで報告されててだいぶ経ってるんだけど治ってない。Sinatraで使う人が少ない上にmodularスタイルじゃないと起こらないからかな。。
トラックバック - http://d.hatena.ne.jp/kakkunpakkun/20110711/1310367364
リンク元
- 168 http://www.google.co.jp/url?sa=t&rct=j&q=ubuntu エディター&source=web&cd=1&sqi=2&ved=0CCMQFjAA&url=http://d.hatena.ne.jp/kakkunpakkun/20090112/1231732103&ei=du2fTuylOsnRmAXh97nbBA&usg=AFQjCNHf9atb20LUfeCPnq
- 153 http://www.google.co.jp/url?sa=t&rct=j&q=&fmt=18&source=web&cd=4&ved=0CEAQFjAD&url=http://d.hatena.ne.jp/kakkunpakkun/20080708/1215493487&ei=IrifTpzPHeO1iQfqkvjGBg&usg=AFQjCNEuF7JkVSXr2K9M7Wulb5ybGEdUfA
- 108 http://www.google.co.jp/url?sa=t&rct=j&q=homebrew ruby&source=web&cd=3&ved=0CC8QFjAC&url=http://d.hatena.ne.jp/kakkunpakkun/20100921/1285075762&ei=46mfTrKeJOKjiAfd37XZBg&usg=AFQjCNGS_eHWh4qDEHzhfd3I0QS4eEtiYA&sig2=-8HJIbKNLiq_1FnGsLc2Xw
- 76 http://www.google.co.jp/url?sa=t&rct=j&q=ubuntu editor&source=web&cd=3&sqi=2&ved=0CC4QFjAC&url=http://d.hatena.ne.jp/kakkunpakkun/20090112/1231732103&ei=8_OkToPBLoeYmQWh8qygCQ&usg=AFQjCNHf9atb20LUfeCPnq8ZBjG0D2K_Uw&sig2=YzxEvHbSozW_TflzeWO9b
- 66 http://search.yahoo.co.jp/search?p=&fmt=18&search.x=1&fr=top_ga1_sa&tid=top_ga1_sa&ei=UTF-8&aq=&oq=
- 63 http://www.google.co.jp/url?sa=t&source=web&cd=1&ved=0CBkQFjAA&url=http://d.hatena.ne.jp/kakkunpakkun/20080116/1200473544&rct=j&q=ruby "class << self;"&ei=l6o7TuKBDoTPmAXA5-3uAg&usg=AFQjCNHkc7N2hTdTd9AaiyKcHoDN43VFjQ
- 53 http://www.google.co.jp/url?sa=t&rct=j&q=homebrew rvm&source=web&cd=1&ved=0CB0QFjAA&url=http://d.hatena.ne.jp/kakkunpakkun/20100921/1285075762&ei=x6mfTsPoPOOWiQfXgdGxBA&usg=AFQjCNGS_eHWh4qDEHzhfd3I0QS4eEtiYA
- 43 http://www.google.co.jp/url?sa=t&source=web&cd=1&ved=0CBgQFjAA&url=http://d.hatena.ne.jp/kakkunpakkun/20090423/1240450483&rct=j&q=ubuntu geany&ei=8awaTrqUBYybmQXPydAQ&usg=AFQjCNG5BrHPAVki2_7OoQxZ49FCjw7tvg&sig2=F4xyE87Id06lGqJt-QVQBg
- 42 http://www.google.co.jp/url?sa=t&source=web&cd=1&ved=0CBsQFjAA&url=http://d.hatena.ne.jp/kakkunpakkun/20080111/1200056270&rct=j&q=performed rails&ei=GK0aTsH8O7GimQXi2rkL&usg=AFQjCNF8M9ZMCwB_L8uQfLehe6Q8YRGnnw&sig2=V3up1LcsRjMfMeKYi44o4w
- 41 http://www.google.co.jp/url?sa=t&rct=j&q=ubuntu+エディター&source=web&cd=1&ved=0CCcQFjAA&url=http://d.hatena.ne.jp/kakkunpakkun/20090112/1231732103&ei=UpPJTpCPC43GmQX8mcUa&usg=AFQjCNHf9atb20LUfeCPnq8ZBjG0D2K_
