У меня есть устаревшая таблица с (ужасными) именами столбцов, такими как LYEAR # 2, LYEAR # 3 ... LYEAR # 9
Я установил для него модель с именем Glamas
Если у меня есть:
accounts = Glamas.all
account_mains = accounts.collect(&:ACCOUNT_MAIN)
Это ломается с этой ошибкой:
SyntaxError: compile error
/usr/lib/ruby/gems/1.8/gems/activemodel-3.0.3/lib/active_model/attribute_methods.rb:273: syntax error, unexpected kUNDEF, expecting ')'
undef :LYEAR#9?
^
/usr/lib/ruby/gems/1.8/gems/activemodel-3.0.3/lib/active_model/attribute_methods.rb:274: syntax error, unexpected kEND, expecting $end
from /usr/lib/ruby/gems/1.8/gems/activemodel-3.0.3/lib/active_model/attribute_methods.rb:274:in `define_attribute_methods'
from /usr/lib/ruby/gems/1.8/gems/activemodel-3.0.3/lib/active_model/attribute_methods.rb:262:in `each'
from /usr/lib/ruby/gems/1.8/gems/activemodel-3.0.3/lib/active_model/attribute_methods.rb:262:in `define_attribute_methods'
from /usr/lib/ruby/gems/1.8/gems/activemodel-3.0.3/lib/active_model/attribute_methods.rb:261:in `each'
from /usr/lib/ruby/gems/1.8/gems/activemodel-3.0.3/lib/active_model/attribute_methods.rb:261:in `define_attribute_methods'
from /usr/lib/ruby/gems/1.8/gems/activerecord-3.0.3/lib/active_record/attribute_methods.rb:13:in `define_attribute_methods'
from /usr/lib/ruby/gems/1.8/gems/activerecord-3.0.3/lib/active_record/attribute_methods.rb:41:in `method_missing'
from (irb):31:in `to_proc'
from (irb):31:in `collect'
from (irb):31
from :0
Это проблема с activemodel или я могу что-то исправить с помощью своего кода?
Это рельсы 3 между прочим.
#glamas.rb
class Glamas < ActiveRecord::Base
establish_connection "turnkey"
end
и ...
#database.yml
turnkey:
adapter: mysql
encoding: utf8
reconnect: false
database: turnkey
pool: 5
username: root
password:
socket: /var/run/mysqld/mysqld.sock
Я вытаскиваю столы прямо из устаревшей машины, я думаю (если мне абсолютно необходимо), я мог бы переименовать столбцы, когда я их перетягиваю, но процесс уже требует огромных усилий и ресурсов процессора.