2011-06-24 9 views

答えて

2

私は_pathの可能な答えを知っていますが、同じことは_urlのために働いていません。誰も知っている理由は?

# at the bottom of config/routes.rb 
module ActionView::Helpers::UrlHelper 
    def model_name_path model, args={} 
     # your implementation 
    end 
end 
+0

ああ、私はそれも_urlのために働くと思う、ちょうど私がコントローラからではなくビューから_urlを呼び出していたと思う。 – Ben

+0

私はuser_linksというヘルパーメソッド名を持っているとします。私はポストモデルを持っています。私のコードは、次のようになります: - 〜module ActionView :: Helpers :: UrlHelper def post_name_path post、args = {} #あなたの実装 - >これには何がありますか? end end〜 – boddhisattva

+0

申し訳ありませんが、適切なコードブロックを使用しようとしましたが、何らかの形でコメントセクションで正しく取得できませんでした。レール4の – boddhisattva

4

この解決策は私に役立ちました。

config/routes.rbファイルの最後にこのコードを追加してください。 MyAppをアプリケーションの名前に置き換えてください。

MyApp::Application.routes.named_routes.module.module_eval do 
    def model_name_path(*args) 
    # Your code here 
    end 

    def model_name_url(*args) 
    # Your code here 
    end 
end 

MyApp::Application.routes.named_routes.instance_eval do 
    @helpers += [:model_name_path, :model_name_url] 
end 

これらのカスタムメソッドは、コントローラ、ビュー、およびテストで使用できます。

+1

:Rails.application.routes.named_routes.url_helpers_module.module_eval do ... – luckyjazzbo

関連する問題