2012-01-12 5 views
3

経路とlink_toメソッドをPOROに含める必要があります。UrlHelperとルートをルートにロードするにはどうしたらいいですか?

ruby-1.9.3-rc1 :001 > include ActionView::Helpers::UrlHelper 
ruby-1.9.3-rc1 :003 > include Rails.application.routes.url_helpers 
=> Object 
ruby-1.9.3-rc1 :004 > link_to "foo", ponies_path 

I:私はルートが含まれている場合

ruby-1.9.3-rc1 :001 > Rails.version 
=> "3.2.0.rc2" 
ruby-1.9.3-rc1 :001 > include ActionView::Helpers::UrlHelper 
=> Object 
ruby-1.9.3-rc1 :002 > link_to "foo", Rails.application.routes.url_helpers.ponies_path 
=> "<a href=\"/ponies\">foo</a>" 

:私はルートなしUrlHelperが含まれている場合

はヘルパーすべてが正常に動作するようです:コンソールでこれをテストしている間、私はこのaccrossに来ました次のエラーが表示されます。

NameError: undefined local variable or method `controller' for #<ApplicationController:0x007fa1497ecc40> 

私はここで間違っていますか?

答えて

15

としては、あなたがルートの一部にappオブジェクトを使用する必要がありますし、あなたがのlink_toのためhelperオブジェクトを使用する必要があります示唆しました。 コンソールを使用しているときにRubyでヘルパーを含める必要はありません:

helper.link_to "foo", app.ponies_path 
+2

+1毎日新しいことを学ぶ – iwasrobbed

+4

未来のために:コンソールの外で 'helper'にアクセスする必要がある場合は、' helper = ApplicationController.helpers' –

3

アプリオブジェクトを使用します。

> link_to "foo", app.ponies_path 
+0

興味深い! – dgilperez

関連する問題