小编Nic*_*fal的帖子

翻译Rails模型关联 - 不工作

任何人都有一些提示如何翻译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)

但没有运气.

我确实阅读了文档,但没有找到它为什么会发生的线索.

ruby validation ruby-on-rails internationalization

7
推荐指数
2
解决办法
3794
查看次数

在 RSpec 测试中跳过 Rails http_basic_authenticate_with

我正在开发 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)。

ruby controller rspec ruby-on-rails basic-authentication

5
推荐指数
1
解决办法
4769
查看次数