小编Gil*_*les的帖子

如何在 RSpec 视图示例中设置区域设置

我想测试视图以确保正确呈现错误消息。我的config.default_locale'fr'。因此,我希望我的视图能够从我的法语区域设置文件中找到正确的 Active Record 错误消息。

describe 'book/new.html.erb' do
  let(:subject) { rendered }
  before do
    @book = Book.create #this generates errors on my model
    render
  end
  it { should match 'some error message in French' }
end
Run Code Online (Sandbox Code Playgroud)

当单独运行或与其他规范/视图一起运行时,此测试通过。但是当我运行完整的测试套件时,视图会呈现以下消息:translation missing: en.activerecord.errors.models.book.attributes.title.blank

我不明白为什么它会以en语言环境呈现。我尝试使用以下命令强制区域设置:

before do
  allow(I18n).to receive(:locale).and_return(:fr)
  allow(I18n).to receive(:default_locale).and_return(:fr)
end
Run Code Online (Sandbox Code Playgroud)

before do
  default_url_options[:locale] = 'fr'
end
Run Code Online (Sandbox Code Playgroud)

有人有想法吗?

ruby testing rspec ruby-on-rails rspec-rails

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

为什么读取CSV文件时会有一个尾随列?

我有一个CSV文件,其结构如下:

"customer_id";"customer_name";"quantity";
"id1234";"Henry";"15";
Run Code Online (Sandbox Code Playgroud)

使用Ruby的标准CSV库解析:

csv_data = CSV.read(pathtofile,{
    :headers => :first_row,
    :col_sep => ";",
    :quote_char => '"'
    :row_sep => "\r\n" #setting it to "\r" or "\n" results in MalformedCSVError
})

puts csv_data.headers.count #4
Run Code Online (Sandbox Code Playgroud)

我不明白为什么解析似乎导致四列,尽管文件只包含三列.这不是解析文件的正确方法吗?

ruby csv parsing multiple-columns ruby-parser

3
推荐指数
1
解决办法
154
查看次数