# config/locales/en.yml
en:
activerecord:
attributes:
user:
email: "E-mail address"
errors:
models:
user:
attributes:
email:
blank: "is required"
这个是 form 表单 a,在服务端运行的,你 js 脚本不方便控制验证的。可以在 work 模型对应的代码里面做验证控制:
class Work< ActiveRecord::Base
##
validates :state, presence: true # 这样设置意思是,state的值不为空。
###
你的 Heroku 账户里得安装一个 SendGrid 插件。然后做一些配置才能生效吧。
503 错误?说明服务端没 Svever 响应请求。你的服务端的服务启动没有?
昨天又看了一下书,发现 yaml 文件的语法和一般的程序不一样。具体可以参考这里。http://www.yaml.org/spec/1.2/spec.html。它里面有这么一段话 “YAML’s block collections use indentation for scope and begin each entry on its own line. Block sequences indicate each entry with a dash and space ( “- ”). Mappings use a colon and space (“: ”) to mark each key: value pair. Comments begin with an octothorpe (also called a“hash”, “sharp”, “pound”, or“number sign” - “#”). " 意思就是属性声明的时候必须使用 (“: ”) 就是一个冒号加一个空格来匹配。 ”To maintain portability, tab characters must not be used in indentation,“ 在 yaml 文件中也就是说禁止用 Tab 键。
你可以检查一下,你的 yaml 文件中是否使用了 tab 或者少了空格。如果不按他的要求做,rails 会解析不了 yaml 文件。具体的内容你可以参考上面的文档说明。
不管用总会报错吧,报什么错误,和什么相关的。然后去一步一步定位一下,你这样和没说一样。
控制台程序和你的 Rail 的应用是有区别的,控制台程序只会去找 Rails 框架中的和中文相关的“zh-CN.yml”和“zh-TW.yml”两个文件,所以你自己写的文件名,Faker 在控制台是找不到的,因为他是读的“I18n”的配置文件。你给他指定的 locales 的话 Faker::Config.locale='zh-HK' ,由于控制台中它只能找到“zh-CN.yml”和“zh-TW.yml”文件,所以找不到指定文件的话就会读取默认配置,获取一个英文的随机名字。命令行的话,你像下面这么做,设置适当的解码格式应该就对了:
如果你要配置自己的 yml 文件的话,比如“zh-HK.yml”,你得把这个名为“zh-HK.yml”的文件放在“Your App/config/locales”下面,并在test.rb给你的yml文件做配置。
#4 楼 @tony612 http://edgeguides.rubyonrails.org/initialization.html 中的 1.9 Rack: lib/rack/server.rb 我怎么找不到?
使用 'rails sever'的时候需要注意,这个命令对环境有依赖,如果是内网,比如你自己的机器上可以直接使用'rails server',如果要在公网上发布,比如云平台,就必须必须使用'-b'(指定 ip 地址) 或'-p'(指定端口号) 来配合使用。上面那个使用了'-b'指定了一个 ip 地址,就是告诉 Rails,我要发布一个应用在公网上,那么 Rails 就会根据公网的发布模式,发布应用。Clou9 云平台支持动态 ip 那么发布应用的命令就该这么写 rails sever -b $IP -p $PORT。 $IP 和 $PORT 是两个变量,可以动态获取 IP 和端口。