2010-11-23 13 views
0

私はいくつかのリンクを挿入したいインデックスのための共通部分を持っています。このリンク上 私はクラスの名前付きルートを取得するには?

link_to "Say hi",things_path(:param1=>:hello, :params2=>:there) 

のように、named_routesを使用したいが、私は、この部分は、すべてのコントローラのために共有されているためthings_pathは、users_path、places_pathまたはreviews_pathであれば知りません。クラスまたは現在のコントローラに関連付けられた名前付きルートを取得する方法はあります。 私はこれまでいくつかの方法がありますが、この

link_to "Say hi", path_of(@current_class)(:param1=>:hello, :params2=>:there) 

答えて

0

cars_pathのようなパスヘルパーは、アクションや他のパラメータ:id。あなたは、現在のコントローラにコントローラが常に同じようにしたい場合は、あなただけの

のlink_toを言うことができる「こんにちは言う」、:アクション=>「インデックス」、:PARAM1 =>:こんにちは、:params2 =>:そこ

:controllerオプションは省略されているため、現在のコントローラと見なされます。

+0

私は知っています。さらに:私はすでにインデックスアクションを行っているので、コントローラーとアクションを省略することもでき、リンクは現在のアクションを指し示します。しかし、ショートカットには私が愛しているいくつかの構文砂糖があります。そして、私はこのアプローチの将来のアプリケーションをmi appで考えています。 – Cibernox

1

ような何かをしたいです。最も単純なことは、多形ルーティングに依存することです:link_to "Say hi", @my_object。この場合、レールはクラス@my_objectとその現在の状態(new_record?)を見て、適切なルートと安らかな行動を使用します。あなたの部分と仮定すると、これはすごいある...

link_to 'Say hi', foo 

のような単純なことができ_foo.html.erb命名されます。この質問は、前に:Polymorphic Routes in Rails - in viewsと尋ねられましたが、魔法の言葉「多相ルーティング」を知らなくても解答を見つけるのは難しいでしょう:-)

+0

私はそのスレッドを読むでしょう。どうもありがとう! – Cibernox

関連する問題