ruby - rails路由constraints问题
黄舟
黄舟 2017-04-25 09:02:04
0
2
669

初学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?这个是啥意思?

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全員に返信(2)
Peter_Zhu
  • Rubyの?付きメソッドの戻り値はtrue/falseです

  • リクエストはRailsコントローラーのカスタム変数であり、対応するレスポンスも

  • です
  • not は否定を意味します。たとえば、not true は false、ns.nil を意味しますか?返されるのはブール型であり、否定されません

  • このメソッドはルートを照合するために使用されます。たとえば、blogs.com/blogs は /blogs を返します。その後、最初の行は「blogs」を使用して現在のパスを検索します。ルートが一致するかどうか。一致する場合は true、一致しない場合は false。

  • これらの方法はすべてローカルで試して、段階的に実行できます。これは複雑なことではありません
いいねを押す +0
PHPzhong

リーリー

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート