目前我正在使用链接到单个路线的自定义约束,如:
get '/hello', to: 'account#index',
constraints: AccountConstraint.new
基本上我的自定义约束是查找request.host,如果在数据库中找到匹配项?方法将返回true,然后将调用帐户#index action。
我想要做的是,如果约束匹配,那么根据路径,它将执行不同的操作。
所以我的约束就像:
class AccountConstraint
def matches?(request)
# lookup the database, return true if record found
end
end
然后我希望我的route.rb文件做这样的事情(_:
下面的伪代码if AccountConstraint matches
get '/', to: "account#index"
get '/hello', to: "account#hello"
end
这样的事情可能吗?如果是这样,怎么样?
答案 0 :(得分:2)
我不确定我是否理解这个问题,但听起来你想要的是scope
:
scope constraints: AccountConstraint.new do
get '/', to: "account#index"
get '/hello', to: "account#hello"
end
只有AccountConstraint
匹配时才能访问范围内的路径。