假設我有Pet
s和Cat
s。貓在type
列中存儲在值爲'Cat'的pets
表中。如何忽略link_to helper中模型的類型列
比方說,我創建這樣一個鏈接:
link_to 'My Pet', Pet.find(1)
這將使用預期pet_path
生成的鏈接。
但隨後讓我們說我創建這樣一個鏈接:
link_to 'My Pet', Cat.find(1)
,這將產生使用「cat_path」,這是聰明的一個環節,但不是我想要的東西,因爲我只有/需要PetController 。
顯然,我只能在link_to中使用pet_path(Cat.find(1))
,但我想知道是否有更強大的解決方案。如果我有狗,鳥等?我不想記住每次都明確使用pet_path
。
如何確保第二個鏈接將創建與pet_path
前進的鏈接?是否有貓模型或寵物模型的設置或我可以放在routes.rb到確保這?
CNC中
有過什麼,我想實現一些混亂。我只是想知道如何確保對Cat對象的link_to調用將解析爲pet_path而不是cat_path。我不想找到一種方法來改變我的表格的設置。在理想情況下,我不必爲不同的寵物類型創建一堆控制器。我想知道是否有一種簡單,優雅的方式來告訴Rails在確定url helper時使用父類作爲模型。
貓與貓有什麼不同?如果你期望未來有更多的寵物,爲什麼不做一個「貓」課? –
聽起來像你有兩個模型使用相同的數據庫表?如果你的問題只是路由助手,你可以簡單地定義'cat_path'和其他與貓相關的helper,並將它們路由到PetController中的動作(如果你有REST動作,你可以執行'resources:cats,controller:' pet'')。或者有一個基本的PetController,然後定義CatController,DogController等作爲派生類,以保持代碼乾爽。很大程度上取決於你的個人喜好和你想達到的目標。 – taglia
我想要實現的是確保對cat對象的link_to調用將通過pet_path。我沒有Rails試圖聰明一點,並生成一個cat_path。 –