Rails - ошибка разбора при миграции, но только на некоторых системах - PullRequest
1 голос
/ 05 апреля 2011

Я написал миграцию для заполнения таблицы стран достаточно статичными данными.

Отлично работает на одной из моих машин (Rails 3.0.something, Ruby 1.9.something, Windows 7), но не на другой (Rails 3.0.5, Ruby 1.8.7, OSX Snow Leopard). Это дает мне следующую ошибку:

/ path_to_webapp / db / migrate / 20110404132215_add_countries.rb: 267: синтаксическая ошибка, неожиданный kEND, ожидание $ end

Это не связано с акцентированными символами в названиях некоторых стран, потому что ошибка все равно происходит, если я удаляю их все, кроме Афганистана и Зимбабве, хотя мне пришлось преобразовать файл в UTF8, чтобы он анализировался в Windows коробка, потому что она не нравится Кот-д'Ивуар.

class AddCountries < ActiveRecord::Migration

  # Use a copy of the Country class so we can add some without worrying about anything that may change on the model down the line
  class Country < ActiveRecord::Base
  end

  def self.up
    Country.new({:name => "Afghanistan", :two_letter_code => "AF", :three_letter_code => "AFG"}).save
    Country.new({:name => "Åland Islands", :two_letter_code => "AX", :three_letter_code => "ALA"}).save
    Country.new({:name => "Albania", :two_letter_code => "AL", :three_letter_code => "ALB"}).save
    Country.new({:name => "Algeria", :two_letter_code => "DZ", :three_letter_code => "DZA"}).save
  end

  def self.down
    Country.all().destroy
  end
end

Ответы [ 2 ]

2 голосов
/ 05 апреля 2011

Вы должны поставить:

# encoding: utf-8

В самом верху вашей страницы.

0 голосов
/ 08 апреля 2011

Я обновился до Ruby 1.9.x, и он работал нормально.

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