初学rails,有几个问题不明白。
class NamespaceConstraint
def self.matches?(request)
name = request.fullpath.split('/').second.downcase
if name[0] == '~' then name = name[1..-1] end
ns = Namespace.where(name_lower: request.fullpath.split('/').second.downcase).first
not ns.nil?
end
end
Rails.application.routes.draw do
constraints(NamespaceConstraint) do
get ':namespace' => 'namespaces#show'
end
end
这段代码大致是什么意思?
self.matches?
这个函数名问号是什么意思?
这个request
变量名并没有定义,是rails自动生成的吗?
not ns.nil?
这个是啥意思?
天蓬老师2017-04-25 09:04:04
Rubyの?付きメソッドの戻り値はtrue/falseです
リクエストはRailsコントローラーのカスタム変数であり、対応するレスポンスも
not は否定を意味します。たとえば、not true は false、ns.nil を意味しますか?返されるのはブール型であり、否定されません
このメソッドはルートを照合するために使用されます。たとえば、blogs.com/blogs は /blogs を返します。その後、最初の行は「blogs」を使用して現在のパスを検索します。ルートが一致するかどうか。一致する場合は true、一致しない場合は false。
。