Rumah > Soal Jawab > teks badan
初学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
Nilai pulangan kaedah dengan ? dalam Ruby adalah benar/salah
permintaan ialah pembolehubah tersuai dalam pengawal rel dan respons yang sepadan juga
bukan bermaksud penafian, contohnya, tidak benar bermaksud palsu, ns.nil? Apa yang dikembalikan ialah jenis boolean, bukan dinafikan
Kaedah ini digunakan untuk memadankan laluan.fullpath mengembalikan laluan relatif Contohnya, blogs.com/blogs mengembalikan /blogs, kemudian baris pertama mendapat 'blog' dikembalikan. 'Semak sama ada laluan semasa sepadan dengannya, jika ya, ia akan menjadi benar, jika tidak, ia akan menjadi palsu.
Anda boleh mencuba semua kaedah ini secara tempatan dan menjalankannya langkah demi langkah. Ini bukan perkara yang rumit