Maison > Questions et réponses > le corps du texte
初学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
La valeur de retour des méthodes avec ? dans Ruby est vrai/faux
request est une variable personnalisée dans le contrôleur Rails, et la réponse correspondante est également
pas signifie négation, par exemple, pas vrai signifie faux, ns.nil ? Ce qui est renvoyé est un type booléen, non nié
Cette méthode est utilisée pour faire correspondre les itinéraires. request.fullpath renvoie un chemin relatif. Par exemple, blogs.com/blogs renvoie /blogs. Ensuite, la première ligne obtient "blogs", puis "blogs". retourné. 'Vérifiez si l'itinéraire actuel lui correspond, si oui, ce sera vrai, sinon, ce sera faux.
Vous pouvez essayer toutes ces méthodes localement et les exécuter étape par étape