Re: [RoR ] 驗證錯誤後的提示訊息
雖然這樣好像有點挑毛病啦...
不過標題寫「驗證錯誤」感覺有點怪怪的
驗證通常是指檢查什麼東西是不是對的
驗證錯誤像是在說錯誤就是對的一樣... XD
相關討論可能是 ruby-core 上關於 assert_not_equal 吧 @@
有人認為不合理,遂改名為 refute_equal ...
※ 引述《s70487s (s70487s)》之銘言:
: 大家好
: 我的問題是:
: 以前在使用validation時,如果user某些欄位不符合就會出現錯誤提示,
: 不過這樣會有安全性的顧慮,
我不明白,有什麼安全性的顧慮??就只是錯誤提示啊,
除非你把程式碼也 dump 給 user 看...
: 之前有看到某個RoR的網站,
: 它並沒有顯示出欄位名稱,不曉得這該怎做呢?
: 謝謝。
你是指欄位名稱跟顯示的名稱相同嗎?
基本上你程式寫得好的話,這邊是不會有任何安全問題的。
另一方面,如果你要做中文化,名稱本來就應該改寫,
不會用欄位名稱啊...
基本上一般我是自己做錯誤處理,完全沒用到 error_messages_for,
所以不需要碰到 rails 底層。
不過剛剛翻了一下 error_messages_for 的程式碼,基本上錯誤訊息的產生
在 activerecord-2.1.1/lib/activerecord/validations.rb: 179
full_messages << @base.class.human_attribute_name(attr) + " " + msg
大概是像這樣吧:
class User < ActiveRecord::Base
def self.human_attribute_name attr
case attr
when :name; '名字'
when :phone; '電話'
end
end
end
沒測試過,自己試試吧。
--
#!/usr/bin/env ruby [露比] /Programming (Kn|N)ight/ 看板《Ruby》
# if a dog nailed extra legs that http://www.ptt.cc/bbs/Ruby/index.html
# walks like an octopus, and Welcome ~Ruby@ptt~
# talks like an octopus, then ◢█◣ http://www.ruby-lang.org/
# we are happy to treat it as █ http://www.ruby-doc.org/
# if it were an octopus. ◥ ◤ http://www.rubyforge.org/
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.135.28.18
推
10/17 23:20, , 1F
10/17 23:20, 1F
→
10/17 23:23, , 2F
10/17 23:23, 2F
→
10/17 23:24, , 3F
10/17 23:24, 3F
→
10/17 23:26, , 4F
10/17 23:26, 4F
→
10/17 23:33, , 5F
10/17 23:33, 5F
討論串 (同標題文章)
完整討論串 (本文為第 2 之 2 篇):
Ruby 近期熱門文章
PTT數位生活區 即時熱門文章