0

アプリが使用する環境を作成または更新しようとすると、次のようになります。

NoMethodError (undefined method `base_url' for #<HashWithIndifferentAccess:0x107162f08>):
  app/controllers/environments_controller.rb:64:in `check_base_url_for_https'
  app/controllers/environments_controller.rb:56:in `update'
  haml (3.0.22) lib/sass/plugin/rack.rb:41:in `call'
  airbrake (3.0.4) lib/airbrake/rack.rb:27:in `call'
  airbrake (3.0.4) lib/airbrake/user_informer.rb:12:in `call'
  /Users/jasonbodak/.rvm/rubies/ree-1.8.7-2011.03/lib/ruby/1.8/webrick/httpserver.rb:104:in `service'
  /Users/jasonbodak/.rvm/rubies/ree-1.8.7-2011.03/lib/ruby/1.8/webrick/httpserver.rb:65:in `run'
  /Users/jasonbodak/.rvm/rubies/ree-1.8.7-2011.03/lib/ruby/1.8/webrick/server.rb:173:in `start_thread'
  /Users/jasonbodak/.rvm/rubies/ree-1.8.7-2011.03/lib/ruby/1.8/webrick/server.rb:162:in `start'
  /Users/jasonbodak/.rvm/rubies/ree-1.8.7-2011.03/lib/ruby/1.8/webrick/server.rb:162:in `start_thread'
  /Users/jasonbodak/.rvm/rubies/ree-1.8.7-2011.03/lib/ruby/1.8/webrick/server.rb:95:in `start'
  /Users/jasonbodak/.rvm/rubies/ree-1.8.7-2011.03/lib/ruby/1.8/webrick/server.rb:92:in `each'
  /Users/jasonbodak/.rvm/rubies/ree-1.8.7-2011.03/lib/ruby/1.8/webrick/server.rb:92:in `start'
  /Users/jasonbodak/.rvm/rubies/ree-1.8.7-2011.03/lib/ruby/1.8/webrick/server.rb:23:in `start'
  /Users/jasonbodak/.rvm/rubies/ree-1.8.7-2011.03/lib/ruby/1.8/webrick/server.rb:82:in `start'

タイトルで述べたように、最近 Rails 2.3.11 にアップグレードしました。このエラーは以前には発生していませんでした。エラーが発生したときに実行されている私の environment_controller.rb のコードは次のとおりです。

def check_base_url_for_https
  @environment = params[:environment]
  if /^https:\/\//i =~ @environment.base_url 
    @ajax_flash = "<ul class='notice'><li>The website you are trying to test is a secure site.  If you are using self-signed SSL certificates please see our <a href='http://support.janova.us'>Support Site</a> and search for SSL for important tips on how to access your site.</li></ul>"
  end
end

このコードの理由を知っている人はいますか (具体的にはif /^https:\/\//i =~ @environment.base_url、Rails 2.3.11 で行が機能しなくなったのでしょうか?

私の app/models/environment.rb のコードも健全であるように見えることを付け加えたいと思います:

def base_url 
  self[:base_url].try(:gsub, /\$/, '') 
end 

上記のコードに何か問題があると思いますか?

4

1 に答える 1

0

私はそれを理解しました:params[:environment]ハッシュとして定義されました。フロスト、私にこれを見させてくれてありがとう。そのため、行@environment = params[:environment]をに変更し@environment = Environment.new(params[:environment])て動作しました。

于 2012-07-16T16:50:03.713 に答える