Использование запятой и экспорт файлов CSV прекрасно работает в моей локальной среде. Также работаем над нашей промежуточной средой, которая работает на экземпляре AWS.
ТОЛЬКО провал на Heroku.
Героку говорит:
2013-08-21T21:55:34.875724+00:00 app[web.1]: NoMethodError (undefined method `klass' for nil:NilClass):
2013-08-21T21:55:34.875724+00:00 app[web.1]: app/models/job.rb:220:in `block in <class:Job>'
2013-08-21T21:55:34.875724+00:00 app[web.1]: app/controllers/jobs_controller.rb:25:in `block (2 levels) in index'
2013-08-21T21:55:34.875724+00:00 app[web.1]: app/controllers/jobs_controller.rb:18:in `index'
И строка 220 в моей модели работы:
Comma do
...
customer :first_name
...
end
job.rb включает строку:
belongs_to :customer
А у customer.rb есть:
has_many :jobs
И, как я уже упоминал, все это отлично работает на моем локальном ящике — я нажимаю кнопку экспорта, и выводятся все задания с каждым клиентом в соответствующем столбце.
По какой-то причине это не работает только на Heroku.
Я использую Ruby 2.0.0-p0 на Heroku, гем Comma только проверено до 1.9.2 в соответствии с документацией - НО - я использую Ruby 2.0.0-p0 на промежуточном сервере И в моей локальной среде, и, опять же, это работает.
Это «класс», который меня действительно сбивает с толку, потому что в моем коде его нет. Я читал другие потоки о той же ошибке и их решениях, но у меня нет таких вещей, как формы вложенных моделей и подобно.
Это какая-то проблема с Heroku & Ruby 2.0 и ассоциациями? У меня есть has_many и own_to с обеих сторон, но, похоже, я все еще неправильно понимаю ассоциацию...
ОБНОВЛЕНИЕ
Из трассировки фреймворка:
comma (3.1.0) lib/comma/extractors.rb:72:in `get_association_class' <====
comma (3.1.0) lib/comma/extractors.rb:55:in `block in method_missing'
comma (3.1.0) lib/comma/extractors.rb:48:in `each'
comma (3.1.0) lib/comma/extractors.rb:48:in `method_missing'
comma (3.1.0) lib/comma/extractors.rb:15:in `instance_eval'
comma (3.1.0) lib/comma/extractors.rb:15:in `results'