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

初学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입니다

  • 요청은 레일 컨트롤러의 맞춤 변수이며 해당 응답도

  • 입니다.
  • not은 부정을 의미합니다. 예를 들어 not true는 false를 의미합니다. ns.nil? 반환되는 것은 부정되지 않은 부울 유형입니다.

  • 이 방법은 경로를 일치시키는 데 사용됩니다. 예를 들어 blogs.com/blogs는 /blogs를 반환하고 그 다음에는 'blogs'를 반환합니다. '현재 경로가 일치하는지 확인하여 일치하면 true, 일치하지 않으면 false입니다.

  • 이 모든 방법을 로컬에서 시도해보고 단계별로 실행할 수 있습니다.

PHPzhong

으아악

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿