是否有可能在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; “必须提供”产生完全相同的错误。
感谢。
答案 0 :(得分:2)
@subscriber和@patient是不同的实例变量。您可能只想使用其中一个,并确保它实际上已初始化。