任何人都有一些提示如何翻译Rails中的模型关联?
例如:我有一个Person模型,可以有很多Phone.但是,一个人需要至少有一部电话.我无法翻译该验证.我能做的最好的就是:
validates_presence_of :phones, :message => "At least one phone is required."
Run Code Online (Sandbox Code Playgroud)
在我的YAML上,我更换了这一行以省略%{attribute}:
format: ! '%{message}'
Run Code Online (Sandbox Code Playgroud)
这样只显示我的消息,并且我避免显示未翻译的字段名称.
这让我很头疼,因为有些宝石根本不允许我通过:message => "something describing the error",所以我想通过我的YAML配置所有错误消息.
此外,对于某些模型,我能够翻译他们的属性,而与其他人我不是.例如:
activerecord:
attributes:
additional_info:
account_manager: "Manager"
Run Code Online (Sandbox Code Playgroud)
这有效.我可以在我的表格"经理"上看到.但是,当此字段有错误时,Rails会将其显示为"Additional info account manager can't be blank".
我试过这个:
activerecord:
errors:
models:
additional_info:
attributes:
account_manager: "Manager"
Run Code Online (Sandbox Code Playgroud)
但没有运气.
我确实阅读了文档,但没有找到它为什么会发生的线索.
我正在开发 MVP(最小可行产品)。为了提供一种更简单的方法来保护管理页面,我只是将 http_basic_authenticate_with 添加到我的 AdminController 中。
问题是,当我想测试我的 AdminController 时,我因未登录而收到“未经授权”(401)。
在这种情况下,测试身份验证是无关紧要的——它只是暂时的,一旦我进入下一个冲刺,它就会被删除——所以我试图在 RSpec 中跳过它。
问题是我尝试了很多方法,但似乎都不起作用。
例如,我尝试修改http_basic_authenticate_with以避免身份验证。像这样:
require 'spec_helper'
module ActionController
module HttpAuthentication
module Basic
def http_basic_authenticate_with(*args)
end
end
end
end
describe Admin::SubscribersController do
describe "GET 'index'" do
it "should be OK" do
get 'index'
response.should be_successful
end
end
end
Run Code Online (Sandbox Code Playgroud)
但是当我运行它时,对于这个简单的测试它仍然返回“false”。
顺便说一句,为了简化这个测试,我的 AdminController 上只有一个空索引操作和一个空视图 (index.html.erb)。