2011-06-23 6 views
1

コンソールからimage_tagヘルパーにアクセスしようとしています。コンソールからimage_tagヘルパーにアクセスするエラー

は(ルビー1.9.2にレール3.0.1は)私も

foo = ActionView::Base.new 
foo.image_tag "rails.png" 

は、私はいつも同じエラーが出るソリューション

helper.image_tag("rails.png") 

をしようと試み

TypeError: can't convert nil into String 
from /home/tomi/.rvm/gems/[email protected]/gems/actionpack-3.0.1/lib/action_view/helpers/asset_tag_helper.rb:790:in `join' 
from /home/tomi/.rvm/gems/[email protected]/gems/actionpack-3.0.1/lib/action_view/helpers/asset_tag_helper.rb:790:in `rails_asset_id' 
from /home/tomi/.rvm/gems/[email protected]/gems/actionpack-3.0.1/lib/action_view/helpers/asset_tag_helper.rb:813:in `rewrite_asset_path' 
from /home/tomi/.rvm/gems/[email protected]/gems/actionpack-3.0.1/lib/action_view/helpers/asset_tag_helper.rb:742:in `compute_public_path' 
from /home/tomi/.rvm/gems/[email protected]/gems/actionpack-3.0.1/lib/action_view/helpers/asset_tag_helper.rb:561:in `image_path' 
from /home/tomi/.rvm/gems/[email protected]/gems/actionpack-3.0.1/lib/action_view/helpers/asset_tag_helper.rb:631:in `image_tag' 

答えて

4

私はあなたに本当の答えはありませんが、私が見つけたことに基づいて、それは可能ではないようです。

path = File.join(config.assets_dir, source) 

設定= {}ので、それがnilだ:config.assets_dirがnilであるため、nilのエラーは、このラインから来ています。誰かがいることを上書きする方法を見つけ出すことができれば

config = controller && controller.respond_to?(:config) ? controller.config : {} 

私はあまり役に立ちません知っているが、:そして、私はラインでactionpack-3.0.7/ACTION_VIEW/base.rb controller 220がnilであるため、それが空だと信じてコンソールを起動すると動作するかもしれません。

とにかく、なぜコンソールでそれをやりたいのですか?ビューに挿入してリロードするのと同じように簡単だと思われます。

+0

レスポンスのために、もう一度コンソールで試してみました。私は 'controller.config.assets_dir'を実行すると"/media/work_volume/project/project/public "というパスを取得しますが、 .config' is {} ...あなたは他のどんな脅威もありますか? ...とにかく私は毎回ビューをレンダリングしていますので、コンソールは必要ありませんが、コンソールからこれらのことを実行する方がはるかに高速です。将来は必要になります... thx – equivalent8

関連する問題