1

Warbler によって生成された war ファイルを使用して、Rails アプリを Tomcat にデプロイしようとしています。war ファイルは問題なく /myproject-rails-gui にデプロイされますが、アプリのページにアクセスしようとすると、次のようになります。

ArgumentError: wrong number of arguments (1 for 0)
          send at org/jruby/RubyKernel.java:2097
       Railtie at /home/myproject/apache-tomcat-7.0.22/webapps/myproject-rails-gui/WEB-INF/gems/gems/actionpack-3.0.10/lib/action_controller/railtie.rb:54

relative_url_root を設定しようとすると失敗します。relative_url_root は非推奨であり、代わりに RAILS_RELATIVE_URL_ROOT 環境変数を設定する必要があることを (正しく) 指摘している他の Stack Overflow 記事があります。

GitHub の Rails プロジェクトから

module ActionController
  class Base
    # Deprecated methods. Wrap them in a module so they can be overwritten by plugins
    # (like the verify method.)
    module DeprecatedBehavior #:nodoc:
      def relative_url_root
        ActiveSupport::Deprecation.warn "ActionController::Base.relative_url_root is ineffective. " <<
          "Please stop using it.", caller
      end

      def relative_url_root=
        ActiveSupport::Deprecation.warn "ActionController::Base.relative_url_root= is ineffective. " <<
          "Please stop using it.", caller
      end

ただし、Warbler と Tomcat を使用してそれを行う方法を理解することはできませんでした。助言がありますか?価値があるのは、アプリをルート コンテキストで実行すると正常に動作することです。

私の環境:

  • ウグイス 1.3.2
  • トムキャット 7.0.22
  • JRuby 1.6.5
  • レール 3.0.10
4

1 に答える 1

0

掘り下げた結果、この特定の例外は、Rails v3.0.10のActionController::DeprecatedBehavior.relative_url_root=でパラメーターが欠落しているために発生していたようです。Miguel さん、あなたの問題は関連しているかもしれませんが、Rails v3.1.1 で発生している場合は、少し異なります。それを修正するために変更しなければならなかったファイルは、v3.1.1 には存在しません。

私は Github の Rails プロジェクトに問題 3645を提出し、フォークで修正し、プル リクエストを発行しました。これは、Rails 3.0 の新しいリリースで修正されることを願っています。

それまでの間、私の固定バージョンを使用したい場合は、https://github.com/mhuffnagle/rails/tree/3-0-stableで入手できます。

于 2011-11-16T15:19:05.973 に答える