Ruby 2.0で古いRails 3-0.20のインストールを続行するにはどうすればよいですか?
この行が原因の最初のエラー:
<%= stylesheet_link_tag :all %>
は
ActionView::Template::Error (no implicit conversion of nil into String):
Railsのバージョンアップが一番ですが、私の場合は残念ながらできません。
Ruby 2.0で古いRails 3-0.20のインストールを続行するにはどうすればよいですか?
この行が原因の最初のエラー:
<%= stylesheet_link_tag :all %>
は
ActionView::Template::Error (no implicit conversion of nil into String):
Railsのバージョンアップが一番ですが、私の場合は残念ながらできません。
application.rb の末尾にある次の行の問題をホットフィックスします。
ActionController::Base.config.relative_url_root = ''
私は同じ問題に遭遇しました。メソッドを掘り下げた後stylesheet_link_tag
、問題はここから来ていることがわかりました
# actionpack-3.0.20/lib/action_view/helpers/asset_tag_helper.rb:749
if has_request && include_host && !source.start_with?(controller.config.relative_url_root)
問題はString#starts_with?
. 1.9.3 では、そのメソッドは anil
を入力として処理します。2.0.0 はそれを許可しません。
ruby-1.9.3> 'whatever'.start_with? nil
=> false
ruby-2.0.0> 'whatever'.start_with? nil
TypeError: no implicit conversion of nil into String
この問題を防ぐために値が設定されていない場合、Rails の新しいバージョンでは値が '' に設定されることもおそらく事実です。上記のホットフィックスは問題を修正しますが、根本的な原因は1.9.3 と 2.0.0 の違いです。