如果用戶試圖進入一個重複的條目到表中,他們得到一個整版討厭的錯誤重複條目的軟數據庫錯誤處理? - Rails的3.1新手
ActiveRecord::RecordNotUnique in Admin::MerchantsController#add_alias
Mysql2::Error: Duplicate entry '2-a' for key 'merchant_id': ..
有沒有辦法給代替,如「這個紀錄已經存在的閃光消息「?
如果用戶試圖進入一個重複的條目到表中,他們得到一個整版討厭的錯誤重複條目的軟數據庫錯誤處理? - Rails的3.1新手
ActiveRecord::RecordNotUnique in Admin::MerchantsController#add_alias
Mysql2::Error: Duplicate entry '2-a' for key 'merchant_id': ..
有沒有辦法給代替,如「這個紀錄已經存在的閃光消息「?
This thread從railsforum可以幫助你
我不會建議檢查的獨特性和具體通過閃光消息響應,這個驗證規則,這通常應該由窗體的錯誤消息,而不是進行處理。
然而,在創建控制器操作和更新,你可以換的條件塊,決定在哪裏發送用戶,與獨特性首先檢查:
def create
@merchant = Merchant.new params[:merchant]
if Merchant.where(:merchant_id => @merchant.id).count > 0
flash[:error] = "The merchant id #{@merchant.id} already exists"
render :create # amend this to :update when applying to the update action
else
# your normal generated save and render block
end
end
這不是最徹底的方法實現你的目標,但我認爲這將是最容易理解的。
會真的推薦模型驗證和表單錯誤消息,如果您使用生成的腳手架,您只需添加模型驗證並將表單向用戶拋出錯誤消息:
# app/models/merchant.rb
class Merchant < ActiveRecord::Base
validates_uniqueness_of :merchant_id
end
讓模型檢查唯一性仍會拋出一個完整的頁面錯誤(儘管對這些錯誤的措辭略好一些)。 – Hopstream