0
我正在尋找簡化基於thr對象名稱的link_to
路徑,並且正在研究重構多個自定義操作。Rails - link_to基於對象名稱的路徑+重構多個自定義動作
我已經設法讓它在下面工作。
我覺得這是「un-rails」,並認爲有更好的方法來執行此操作。 基於迭代,例如menu.name
,它將轉到URL例如tech/oil-change
。
我的控制器充滿了十二個動作,我期待DRY以某種方式。
def oil_change
@techs = Tech.joins(:services).where(services: { name: 'oil change'})
end
def muffler
@techs = Tech.joins(:services).where(services: { name: 'muffler'})
end
etc...
etc...
etc...
etc...
路線
我的路線如下所示:
resources :techs, :only => [:index, :show], shallow: true do
resources :cars, only: [:new, :create]
collection do
get 'oil-change'
get 'brakes'
get 'muffler'
etc....
etc....
etc....
etc....
etc....
end
end
耙路線
oil-change_techs/techs#oil-change
blowout_techs/techs#brakes
muffler_techs/techs#muffler
etc...._techs/techs#etc....
etc...._techs/techs#etc....
etc...._techs/techs#etc....
有沒有一種迭代局部變量menu
(menu.name
)被包含在路徑中的方法,而不是我現在擁有它的黑客入侵方式?同樣基於該迭代,允許link_to
執行單個控制器操作而不是具有多個控制器操作?
請知道你看到的上述工作,但我期待簡化和DRY解決方案,如果可能的話。
任何幫助將不勝感激。
感謝您的答覆。你的控制器缺少括號。我重新啓動服務器,並得到以下錯誤:'未定義的方法'techs_part_path'爲#<#:0x007fd110554338>請指教。 –
@captainawesome你可以運行'耙路線'並告訴我什麼*路徑*創建?我寫了一個猜測的道路。請從'rake routes'確認它 –
我的意思是說你的'view'缺少括號。 –