39444


padrino-0.14.1.1とactivesupport-5.1.1の組み合わせで使っていて、padrino-
adminを生成しているのですが、ログイン画面(/admin/sessions/new)を表示すると以下のようなエラーが発生して、500エラーの画面になってしまいます。

[code]

    DEBUG -  TEMPLATE (0.0007s) /sessions/new
    2017-11-07 20:23:01 - NoMethodError - undefined method `humanize' for "login.title":String:
        /Path/to/app/'vendor/bundle' /ruby/2.3.0/gems/padrino-admin-0.14.1.1/lib/padrino-admin/helpers/view_helpers.rb:43:in `padrino_admin_translate'
    (以下略)
    
[/code]

ネットを検索してもこのような事例はないので、Padrinoのバグではない考えており、とりあえずの対応として、view_helpers.rb
の先頭に以下のrequireを追加することで動きました。

[code]

    require 'active_support'
    require 'active_support/core_ext/string'
    
[/code]

しかし、自分のアプリケーションの問題のために、Padrinoのファイルを編集するのも良くないと思います。他に良い対応方法があったら教えて下さい。


CC BY-SA 3.0
2017-11-07T14:41:38.523
39388
2017-11-09T05:30:18.997
26093
question
ruby
padrino-0.14.1.1とactivesupport-5.1.1の組み合わせでhumanizeがNoMethodError


GithubのPadrinoリポジトリにissueを投稿したところ、メンテナーから現象がバグによるものであることと、現時点での対応方法について回答をもらえたので、自己回答します。

対応方法については、バグが修正されるまでは、config/initializersに以下のようなextra_requires.rbファイルを置くことで、とりあえず対応できます。  
view_helpers.rbを編集する必要はありません。

[code]

    # config/initializers/extra_requires.rb
    require "active_support"
    require "active_support/core_ext/string"
    
[/code]

回答の原文は以下のとおりです。

\--

Looks like a bug due to the ongoing effort to remove the ActiveSupport
dependency from Padrino.

You don't need to update view_helpers.rb - creating a file in
config/initializers should be sufficient as a temporary stop-gap until the bug
is fixed.

[code]

    # config/initializers/extra_requires.rb
    require "active_support"
    require "active_support/core_ext/string"
    
[/code]


CC BY-SA 3.0
2017-11-09T05:30:18.997
39444
2017-11-09T05:30:18.997
26093
39388
answer