Rails和Devise在其他地方杀死了验证错误

时间:2011-07-15 15:53:01

标签: ruby-on-rails error-handling devise

是否有可能在Rails 3.0.3应用程序中安装Devise 1.1.8,它会以某种方式干扰非设计模型/控制器中的正常验证?

在我的应用中,有一个与Devise绑定的用户模型。此外,还有一个具有属性的Patient模型:mobile。 (我们收集医疗保健应用程序的移动病人数。)

类患者<的ActiveRecord ::基

#validates_presence_of:mobile,:message => “必须提供”

以上引发了以下错误:

当你没想到它时,你有一个零对象! 您可能期望ActiveRecord :: Base的实例。 评估nil.errors时发生错误

- 和 - 提取的来源(第12行):

9:       <h2><%= pluralize(@patient.errors.count, "error") %> prohibited this subscriber from being saved:</h2>
10: 
11:       <ul>
12:       <% @subscriber.errors.full_messages.each do |msg| %>
13:         <li><%= msg %></li>
14:       <% end %>
15:       </ul>

BTW,当新用户出错时(如不提供密码),Devise可以正常显示错误消息。

另外,删除:message =&gt; “必须提供”产生完全相同的错误。

感谢。

1 个答案:

答案 0 :(得分:2)

@subscriber和@patient是不同的实例变量。您可能只想使用其中一个,并确保它实际上已初始化。