ActiveRecord :: Base.new返回nil

时间:2010-08-01 01:17:19

标签: ruby-on-rails ruby

出于某种原因,当我打电话给.new时,我在rails中的一个模型返回nil。这只是控制器中的一个问题。当我尝试控制台时,它返回一个具有nil属性的对象,正如我所期望的那样。我怀疑问题出在我的控制器中,但我不知道。

当我打电话给.all时也会发生这种情况。同样,我可以从命令行手动执行这些命令而不会出现问题。

这是控制器代码:

http://gist.github.com/502816

编辑:看起来我的其他几个模型的行为方式相同。这个问题显然比这个控制器/模型更深。我对rails很新,所以我不确定在哪里调试它。

EDIT2:我的一位聪明的朋友帮我弄清楚甚至没有调用控制器动作。然而,我之前的过滤器是,但它不是重定向。所以,不知何故,找到了正确的控制器,但没有调用适当的操作。

我的服务器日志 SAYS 正在处理正确的操作,但实际的函数体似乎没有执行。

1 个答案:

答案 0 :(得分:1)

我认为您的问题是所有的方法EventsController都被声明为私有。私有方法不能被称为操作 - 因此您遇到了问题。

尝试将私有声明和redirect_if_not_logged_in移动到文件的末尾,即在destroy方法之后。

有关Ruby中公共/私有/受保护工作的更多信息,请阅读:http://www-users.math.umd.edu/~dcarrera/ruby/0.3/chp_04/features.html