【发布时间】:2012-02-29 22:32:31
【问题描述】:
我在 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| %>
一切都正确加载,但是当我尝试保存时,我的验证被忽略,它重定向到带有成功消息的索引页面,但没有保存数据。我有一种感觉,我错过了与命名空间有关的东西,但我不完全确定问题出在哪里。会不会是在基础模型目录中寻找模型?
【问题讨论】:
标签: ruby-on-rails model namespaces