我有一个管理用户的Rails 3中的更新表单,尽管有验证失败,但无提示失败。它是以前工作,但是当我将所有内容移动到名称空间时,它不再保存。更新失败,命名空间模式
这里是我的控制器相关代码:
def update
@admin = Admin::Admin.find(params[:id])
respond_to do |format|
if @admin.update_attributes(params[:admin])
flash[:success] = "'#{@admin.name}' was successfully updated."
format.html { redirect_to admin_admins_path }
else
format.html { render action: "edit" }
end
end
end
和模型(未完,但以前工作):
class Admin::Admin < ActiveRecord::Base
validates :name, :presence=>{:message=>"Name can't be blank"}
validates :email, :presence=>{:message=>"Email can't be blank"},
:length => {:minimum => 3, :maximum => 254, :message=>"Email must be between 3 and 254 characters"},
:uniqueness=>{:message=>"Email has already been registered"},
:format=>{:with=>/^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/i, :message=>"Email must be a valid email format"}
validates :password, :presence=>{:message=>"Password can't be blank"}
end
和窗体的部分第一部分:
<%= form_for(@admin) do |f| %>
一切正常加载,但是当我尝试保存时,我的验证将被忽略并重定向到该索引页面带有成功消息,但不保存数据。我有一种感觉我错过了与命名空间有关的事情,但我不完全确定问题是什么。它可能在基础模型目录中查找模型吗?
这是正确的,它们是空白的。我认为这是一个命名空间问题,因为没有验证运行。 – VirtuosiMedia 2012-02-29 23:44:03
验证不会抱怨'@ admin.update_attributes(nil)'。 – iltempo 2012-02-29 23:45:41
试着找出如何在params中使用Admin :: Admin模型。没有测试它,但我可以想象像'params ['admin :: admin']。 – iltempo 2012-02-29 23:50:09