Mobile on Rails と simply_helpful
FormTagHelper のメソッドは、controller がない状態で、単に HTML を生成するためだけの目的に使われることがある。simply_helpful(のテスト)がそんな感じ。バッティングしたので以下のように対処。
Index: lib/mobile_view.rb =================================================================== --- lib/mobile_view.rb (リビジョン 8) +++ lib/mobile_view.rb (作業コピー) @@ -15,7 +15,7 @@ module FormTagHelper def form_tag_with_session_id(url_for_options={}, options={}, *parameters_for_url, &proc) tag = form_tag_without_session_id(url_for_options, options, *parameters_for_url, &proc) - if controller.request.mobile? + if defined?(controller) && controller.request.mobile? session_key = ::ActionController::CgiRequest::DEFAULT_SESSION_OPTIONS[:session_key] || '_session_id' tag + hidden_field_tag(session_key, request.session.session_id) else
form にセッションID 付加する方法は、form_tag 書き換えの方がスマートなんだけど、ActiveHeart みたく、コントローラーの after_filter で response の </form> 引っ掛けて置換する方がいいのかも?