1

我有一个类似这个动作的控制器

class EventsController < ApplicationController

    ....

    def test
      Events.first.test
    end

    ....

end

和类似的模型

class Event < ActiveRecord::Base

....

    def test
        debugger
    end

....

end

让我感到困惑的是,当动作被触发并调用模型的方法然后给我带来调试器时,我不在模型的方法中。

调试器列表命令给我带来了这个

(rdb:73) list
[1327, 1336] in /Library/Ruby/Gems/1.8/gems/actionpack-2.3.4/lib/action_controller/base.rb
   1327        end
   1328  
   1329        def perform_action
   1330          if action_methods.include?(action_name)
   1331            send(action_name)
=> 1332            default_render unless performed?
   1333          elsif respond_to? :method_missing
   1334            method_missing action_name
   1335            default_render unless performed?
   1336          else

并且self不是 Even 类的一个实例

(rdb:73) self
#<EventsController:0x1032786d0 @performed_render=false, @_headers={"Cache-Control"=>"
....

我错过了什么吗?如何让调试器进入 Event 类的测试方法?

4

1 回答 1

3

是的,它在最后一行带有隐式返回。

在调试器之后添加一些行,例如


    def test
        debugger
        puts 'debug'
    end
于 2010-03-09T11:15:33.890 回答