0

アプリレールのバージョンを3.0.9から3.1.2にアップグレードし、ruby1.8.7から1.9.2に切り替えました。

更新後にサーバーを実行しようとすると、次のエラーメッセージが表示されます。

rvm/gems/ruby-1.9.2-p320@global/gems/rake-0.9.2.2/lib/rake/dsl_definition.rb:65:in `directory': wrong number of arguments (0 for 1) (ArgumentError)
    from /Users/Big_Bird/.rvm/gems/ruby-1.9.2-p320@global/gems/rake-0.9.2.2/lib/rake/dsl_definition.rb:165:in `directory'
    from /Users/Big_Bird/apps/Example/vendor/plugins/calendar_date_select/init.rb:12:in `block (2 levels) in <class:Plugin>'
    from /Users/Big_Bird/apps/Example/vendor/plugins/calendar_date_select/init.rb:11:in `each'
    from /Users/Big_Bird/apps/Example/vendor/plugins/calendar_date_select/init.rb:11:in `block in <class:Plugin>'

プラグインでエラーが発生するスニペットは次のとおりです。

%w[calendar_date_select includes_helper].each { |file| 
  require File.join( File.dirname(__FILE__), "lib",file) 
}

ActionView::Helpers::FormHelper.send(:include, CalendarDateSelect::FormHelper)
ActionView::Base.send(:include, CalendarDateSelect::FormHelper)
ActionView::Base.send(:include, CalendarDateSelect::IncludesHelper)

# install files
unless File.exists?(Rails.root + '/public/javascripts/calendar_date_select/calendar_date_select.js')
  ['/public', '/public/javascripts/calendar_date_select', '/public/stylesheets/calendar_date_select', '/public/images/calendar_date_select', '/public/javascripts/calendar_date_select/locale'].each do |dir|
    source = File.join(directory,dir)
    dest = Rails.root + dir
    FileUtils.mkdir_p(dest)
    FileUtils.cp(Dir.glob(source+'/*.*'), dest)
  end
end

プラグインにリストされているすべてのディレクトリが正しいため、問題がどこにあるのかよくわかりません。アップグレード中に、RAILS_ROOTからRails.rootに切り替える必要がありましたが、それだけです。

この問題を解決する方法についてのガイダンスをいただければ幸いです。

4

1 に答える 1

1

問題は次の行にあるようです。

source = File.join(directory,dir)

directory文字列パスになることを期待していますか?もしそうなら、私はそれがどこにも定義されていないのを見ません。

于 2012-11-07T20:26:00.653 に答える