我想测试视图以确保正确呈现错误消息。我的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)
有人有想法吗?
我有一个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)
我不明白为什么解析似乎导致四列,尽管文件只包含三列.这不是解析文件的正确方法吗?