2010-11-23 80 views
0

我有一個共同的部分索引,我想插入一些鏈接。 在這個鏈接我想用named_routes,像如何從rails中的類中獲取命名路由?

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

,但我不,知道如果things_path是users_path,places_path或reviews_path因爲這部分是所有控制器共享。有任何方法可以獲取與類或當前控制器關聯的命名路由。 我想要類似這樣的東西

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

回答

0

像cars_path這樣的路徑助手最終只是一個快捷方式來設置:controller,:行動和其他參數如:id。如果你想使控制器總是等於電流控制器,你就可以說

的link_to「打招呼」,:動作=>「指數」:參數1 =>:你好,:params2 =>:有

因爲:controller選項被省略,它將被假定爲當前控制器。

+0

我知道。甚至更多:因爲我已經在索引操作上,我甚至可以忽略控制器和操作,並且鏈接將指向當前操作。但捷徑有一些我喜歡的語法糖。而且即時通訊思想未來在mi應用程序中的這種方法的應用 – Cibernox 2010-11-23 16:50:23

1

有幾種方法可以解決這個問題。最簡單的事情是依賴多態路由,如:link_to "Say hi", @my_object。在這種情況下,導軌會查看@my_object的類別及其當前狀態(new_record?),並使用適當的路線和平穩操作。假設你的部分被命名爲_foo.html.erb那麼這可以是簡單的

link_to 'Say hi', foo 

...這是相當真棒。這個問題之前已經被問過了,在這裏:Polymorphic Routes in Rails - in views但是我猜如果不知道魔術詞「多態路由」很難找到答案:-)

+0

我會讀那個線程。非常感謝! – Cibernox 2010-11-23 16:52:35