<\/p> \n
Active Record \u9a8c\u8bc1\u8f85\u52a9\u65b9\u6cd5\u7684\u9ed8\u8ba4\u9519\u8bef\u6d88\u606f\u90fd\u662f\u82f1\u6587\uff0c\u4e3a\u4e86\u63d0\u9ad8\u7528\u6237\u4f53\u9a8c\uff0c\u6709\u65f6\u5019\u6211\u4eec\u7ecf\u5e38\u4f1a\u88ab\u8981\u6c42\u6309\u7279\u5b9a\u7684\u6587\u672c\u5c55\u793a\u9519\u8bef\u4fe1\u606f\u3002\u6b64\u65f6\u6709\u4e24\u79cd\u5b9e\u73b0\u65b9\u5f0f\u3002<\/p> \n
1. \u76f4\u63a5\u5728:message\u6dfb\u52a0\u6587\u6848<\/p> \n
class User < ActiveRecord::Base
\u3000validates :email,
<\/span> presence: { message: <\/span>'<\/span>\u90ae\u7bb1\u4e0d\u80fd\u4e3a\u7a7a\uff01<\/span>'<\/span> },
<\/span> uniqueness: { message: <\/span>'\u90ae\u7bb1 %{value} <\/span>\u5df2\u5b58\u5728\uff01<\/span>'<\/span> }
<\/span> validates :name,
<\/span> presence: { message: <\/span>'<\/span>\u59d3\u540d\u4e0d\u80fd\u4e3a\u7a7a\uff01<\/span>'<\/span> },
<\/span><\/em><\/em><\/em><\/em> length: { maximum: <\/span>255, too_long: '<\/span>\u59d3\u540d\u6700\u591a\u4e3a255\u4e2a\u5b57\u7b26<\/span>'<\/span> }
<\/span><\/em><\/em><\/em><\/em><\/em><\/em>end<\/em><\/em><\/em><\/em><\/em><\/em><\/em><\/pre> \n <\/div> \n\u9a8c\u8bc1\u4e00\u4e0b\uff1a<\/p> \n
\nuser = User.new\r\nuser.valid?\r\nuser.errors.messages\r\n<\/span>#<\/span>=> { :email=>["\u90ae\u7bb1\u4e0d\u80fd\u4e3a\u7a7a\uff01"], :name=>["\u59d3\u540d\u4e0d\u80fd\u4e3a\u7a7a\uff01"]} <\/span><\/pre> \n <\/div> \n
2. \u4f7f\u7528 rails\u56fd\u9645\u5316API<\/p> \n
\u5728config\/locales\u6587\u4ef6\u4e0b\u5df2\u7ecf\u5b58\u5728\u4e00\u4e2a\u9ed8\u8ba4\u7684en.yml\u6587\u4ef6\uff0c\u6211\u4eec\u53ef\u4ee5\u518d\u6dfb\u52a0\u4e00\u4e2a zh-CN.yml \u6587\u4ef6\u4f5c\u4e3a\u4e2d\u6587\u7684\u7ffb\u8bd1<\/p> \n
\nclass<\/span> ApplicationController < ActionController::Base<\/span>\r\n before_action :set_locale\r\n <\/span>def<\/span> set_locale\r\n I18n.locale <\/span>= user_locale\r\n <\/span>#<\/span> after store current locale<\/span>\r\n cookies[:locale] = params[:locale] if<\/span> params[:locale]\r\n rescue I18n::InvalidLocale\r\n I18n.locale <\/span>= I18n.default_locale\r\n end\r\n\r\n protected\r\n <\/span>def<\/span> user_locale\r\n params[:locale] <\/span>|| cookies[:locale] || http_head_locale || I18n.default_locale\r\n end
<\/span><\/pre> \ndef http_head_locale
request.env['HTTP_ACCEPT_LANGUAGE']
end<\/pre> \nend<\/span><\/pre> \n <\/div> \n
\u8bbe\u7f6e\u6bcf\u4e2akey\u5bf9\u5e94\u7684\u7ffb\u8bd1\u503c<\/p> \n
\nzh-CN:\r\n activerecord:\r\n attributes:\r\n taken: <\/span>'<\/span>\u5df2\u5360\u7528<\/span>'<\/span>\r\n blank: <\/span>'<\/span>\u4e0d\u80fd\u4e3a\u7a7a<\/span>'<\/span>\r\n user:\r\n email: <\/span>'<\/span>\u90ae\u7bb1<\/span>'<\/span>\r\n password: <\/span>'<\/span>\u5bc6\u7801<\/span>'<\/span>\r\n name: <\/span>'<\/span>\u59d3\u540d<\/span>'<\/span>\r\n mobile: <\/span>'<\/span>\u624b\u673a\u53f7<\/span>'<\/span>\r\n models:\r\n user: <\/span>'<\/span>\u7528\u6237<\/span>'<\/span>\r\n errors:\r\n messages:\r\n record_invalid: <\/span>"<\/span>%{errors}<\/span>"<\/span>\r\n taken: <\/span>'<\/span>\u5df2\u5360\u7528<\/span>'<\/span>\r\n blank: <\/span>'<\/span>\u4e0d\u80fd\u4e3a\u7a7a<\/span>'<\/span>\r\n attributes:\r\n version: <\/span>'<\/span>\u7248\u672c<\/span>'<\/span>\r\n actions:\r\n create: <\/span>'<\/span>\u65b0\u589e<\/span>'<\/span>\r\n update: <\/span>'<\/span>\u4fee\u6539<\/span>'<\/span>\r\n destroy: <\/span>'<\/span>\u5220\u9664<\/span>'<\/span><\/pre> \n <\/div> \n
\u9a8c\u8bc1\u4e00\u4e0b\uff1a<\/p> \n
\nclass<\/span> User < ActiveRecord::Base\r\n validates :mobile,\r\n presence: true,\r\n uniqueness: true,\r\nend<\/span><\/pre> \n <\/div> \n
\nuser = User.new\r\nuser.valid?\r\nuser.errors.messages <\/span>#<\/span>=> { :mobile=>["\u4e0d\u80fd\u4e3a\u7a7a", "\u5df2\u5360\u7528"] } <\/span>\r\nuser.errors.full_messages #<\/span>=> [ "\u624b\u673a\u53f7 \u4e0d\u80fd\u4e3a\u7a7a", "\u624b\u673a\u53f7 \u5df2\u5360\u7528"]<\/span><\/pre> \n <\/div> \n
\u53c2\u8003\uff1a<\/p> \n
\u5904\u7406\u9a8c\u8bc1\u9519\u8bef<\/a><\/p> \n
Active Record \u6a21\u578b\u7684\u7ffb\u8bd1<\/a><\/p> \n
<\/p> \n<\/div>","orderid":"0","title":"Rails \u81ea\u5b9a\u4e49\u9a8c\u8bc1\u7684\u9519\u8bef\u4fe1\u606f","smalltitle":"","mid":"0","fname":"Ruby","special_id":"0","bak_id":"0","info":"0","hits":"387","pages":"1","comments":"0","posttime":"2019-09-03 03:38:15","list":"1567453095","username":"admin","author":"","copyfrom":"","copyfromurl":"","titlecolor":"","fonttype":"0","titleicon":"0","picurl":"https:\/\/www.cppentry.com\/upload_files\/","ispic":"0","yz":"1","yzer":"","yztime":"0","levels":"0","levelstime":"0","keywords":"Rails<\/A> \u5b9a\u4e49<\/A> \u9a8c\u8bc1<\/A> \u9519\u8bef<\/A> \u4fe1\u606f<\/A>","jumpurl":"","iframeurl":"","style":"","template":"a:3:{s:4:\"head\";s:0:\"\";s:4:\"foot\";s:0:\"\";s:8:\"bencandy\";s:0:\"\";}","target":"0","ip":"120.229.33.54","lastfid":"0","money":"0","buyuser":"","passwd":"","allowdown":"","allowview":"","editer":"","edittime":"0","begintime":"0","endtime":"0","description":"Rails \u81ea\u5b9a\u4e49\u9a8c\u8bc1\u7684\u9519\u8bef\u4fe1\u606f","lastview":"1713521174","digg_num":"0","digg_time":"0","forbidcomment":"0","ifvote":"0","heart":"","htmlname":"","city_id":"0"},"page":"1"}