如果在params
中找到匹配,我想约束我的路线:
constraints :client_code => User.all.client_code.any? do
get ":client_code" => "share#index", :as => :shares
get ":client_code/:id" => "share#show", :as => :share
end
应该去哪些而不是User.all.client_code.any?
?我真的无法理解。
谢谢!的更新
我已经制作了一个像这样的约束对象:
class ClientCodeConstraint
def initialize
@users = User.all
end
def matches?(request)
@users.where(:client_code => request).first
end
end
并将constraints ...
中的routes.rb
行更改为:
constraints ClientCodeConstraint.new do ...
我是否在正确的轨道上?我收到了这个回复:
undefined method `where' for #<Array:...
答案 0 :(得分:0)
用这种方法解决了,但不知道它的效率如何:
def matches?(request)
@users.each do |user|
return true if request.path_parameters[:client_code] == user.client_code
end
end