Exi*_*iRe 12 ruby model-view-controller controller ruby-on-rails
我有user.errors
我的控制器中的所有错误.所以,我有一个:user_login
有错误的字段.如何才能从该字段获取完整的错误消息user.errors
?
我可以像这样得到这个字段的文本:
user.errors[:user_login] # Gives that 'can't be empty'
Run Code Online (Sandbox Code Playgroud)
但我真的想做那样的事情
user.errors.get_full_message_for_field[:user_login] # 'Your login can't be empty'
Run Code Online (Sandbox Code Playgroud)
Quv*_*Quv 22
嗯,我知道这个问题是在一年半之前为Rails 3.x明确发布的,但现在Rails 4.x似乎有你想要的方法,full_messages_for
.
user.errors.full_messages_for(:user_login) #=> return an array
# if you want the first message of all the errors a specific attribute gets,
user.errors.full_messages_for(:user_login).first
# or
user.errors.full_messages_for(:user_login)[0]
Run Code Online (Sandbox Code Playgroud)
它比以前使用的更简洁user.errors.full_message(:user_login, user.errors[:user_login].first)
.
leb*_*eze 10
看看full_message
这里:
http://api.rubyonrails.org/classes/ActiveModel/Errors.html#method-i-full_message
有点冗长,但你可以做类似的事情:
user.errors.full_message(:user_login, user.errors[:user_login])
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
8827 次 |
最近记录: |