Я попытаюсь выяснить какое-то странное поведение из модели ActiveRecord.Модель имеет поле language
, заполненное идентификатором языка ("de", "en")
Если я хочу получить доступ к атрибуту языка из объекта модели, я получуnil
.
$> foo = Product.first
=> #<Product id: 1049488, ... , language: "en", ...>
$> foo.id
=> 1049488
$> foo.language
=> nil
$> foo.send("language")
=> nil
$> foo.to_yaml
=> "--- !ruby/object:Product \nattributes: \n ... language: en\n ..."
$> foo.language
=> "en"
Это похоже на скрытую "функцию" отложенной загрузки или что-то еще пытается вмешаться здесь.Это имя поля "language" вызывает такое поведение или есть какой-то другой механизм, который я не понимаю?
Я использую следующие Gems внутри моего проекта Rails:
- rails 3.0.0
- jquery-rails
- sqlite3-ruby
- mysql
- rmagick
- act_as_tree
- dbi
- dbd-odbc
- solr-ruby
- progressbar
Я также проверил различные списки " зарезервированных слов " дляколлизии, но ни в одном списке нет language
.Когда имя столбца будет изменено на lang
, все работает нормально.Итак, - это проблема с именами, но я не могу отследить ее.Существуют ли какие-либо инструменты для получения стека вызовов или чего-то еще из данного метода в Ruby для определения проблемы?