我有一個管理用戶的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