Rails源代码分析(34):ActionController::Routing(5) Route

1 结构

  1.     class Route #:nodoc:
  2.       attr_accessor :segments:requirements:conditions:optimise
  3.       def initialize
  4.         @segments = []
  5.         @requirements = {}
  6.         @conditions = {}
  7.         @optimise = true
  8.       end
  9.     end

2 匹配
  1.       def matches_controller_and_action?(controller, action)
  2.         unless defined@matching_prepared
  3.           @controller_requirement = requirement_for(:controller)
  4.           @action_requirement = requirement_for(:action)
  5.           @matching_prepared = true
  6.         end
  7.         (@controller_requirement.nil? || @controller_requirement === controller) &
  8.         (@action_requirement.nil? || @action_requirement === action)
  9.       end
  10.     protected
  11.       def requirement_for(key)
  12.         return requirements[key] if requirements.key? key
  13.         segments.each do |segment|
  14.           return segment.regexp if segment.respond_to?(:key) && segment.key == key
  15.         end
  16.         nil
  17.       end




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值