Ошибка кодирования в Rails 3 - PullRequest
0 голосов
/ 08 октября 2011

Я запустил свою программу, и все отлично работает. Сейчас я пытаюсь написать несколько тестов и получаю эту ошибку:

Encoding::CompatibilityError: incompatible character encodings: ASCII-8BIT and UTF-8

Я не использую какие-либо странные символы, насколько мне известно. Я даже не знаю, с чего начать с этой ошибкой. Я попытался добавить эти две строки в файл environment.rb:

Encoding.default_internal = Encoding::UTF_8
Encoding.default_external = Encoding::UTF_8

и это не помогло. Вот тест, который я пытаюсь запустить:

require 'test_helper'

class UserTest < ActiveSupport::TestCase
  test "should require all fields" do
    u = User.new
    assert_false u.valid?
  end
end

вот мой файл users.yml:

one:
  name: MyString
  password: MyString

two:
  name: MyString
  password: MyString

<% (1..5).each do |i| %>
  user_<%= i %>:
    name: user_<%= i %>
    password: user_<%= i %>
<% end %>

вот мой след стека:

Creating sqlite :memory: database
-- create_table("comment_votes", {:force=>true})
   -> 0.0021s
-- create_table("comments", {:force=>true})
   -> 0.0013s
-- add_index("comments", ["post_id"], {:name=>"index_comments_on_post_id"})
   -> 0.0005s
-- create_table("posts", {:force=>true})
   -> 0.0015s
-- create_table("users", {:force=>true})
   -> 0.0013s
-- create_table("votes", {:force=>true})
   -> 0.0010s
-- initialize_schema_migrations_table()
   -> 0.0009s
-- assume_migrated_upto_version(20111005200722, ["db/migrate"])
   -> 0.0013s

Encoding::CompatibilityError: incompatible character encodings: ASCII-8BIT and UTF-8

1 тестов, 0 подтверждений, 0 отказов, 1 ошибок, 0 ожиданий, 0 пропусков, 0 уведомлений

Тестовый набор завершен: 0,058747 секунд

Процесс завершен с кодом выхода 1

1 Ответ

0 голосов
/ 08 октября 2011

Ваши пароли засолены?И использует ли соль случайно случайные байты, которые могут не соответствовать UTF-8 или US-ASCII?Это застало меня врасплох.Я должен был force_encoding("BINARY") на мой пароль соли.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...