1
目前我使用的是被鏈接到像一個單一的路徑的自定義約束:可以將自定義約束路由到多個控制器操作?
get '/hello', to: 'account#index',
constraints: AccountConstraint.new
基本上我的自定義約束仰視request.host,並且如果在數據庫中找到匹配項?方法將返回true,然後帳戶#索引操作將被調用。
我想要做的是,如果約束匹配,那麼基於路徑將執行不同的操作。
所以我的約束是這樣的:
class AccountConstraint
def matches?(request)
# lookup the database, return true if record found
end
end
然後我想我route.rb文件做這樣的事情(僞代碼below_:
if AccountConstraint matches
get '/', to: "account#index"
get '/hello', to: "account#hello"
end
是這樣的可能嗎?如果是這樣,怎麼樣?
我會在控制器內寫入那種邏輯,而不是在路由文件中。您可以檢查控制器,如果請求匹配,甚至在視圖中。 –
你應該使用控制器從控制器中的請求中檢查引用者/主機,而不是路由並相應地重定向...它會好得多。 – Mayank