Я пытаюсь изучить Ruby on Rails, используя третье издание Agile Web Development with Rails, и я полностью застрял. Я использую Ruby версии 1.8.7 и rails 2.3.5 в Linux Mint. Сразу после того, как книга рекомендовала мне перейти с файлов cookie на базу данных SQLite для управления сеансами, приложение больше не работает. Я получаю следующую ошибку, когда нажимаю кнопку «Добавить в корзину» в https://localhost:3000/store:
LoadError в StoreController#add_to_cart Ожидается /home/dave/work/depot/app/models/cart.rb для определения корзины RAILS_ROOT: /home/dave/work/depot Application Trace | Трассировка платформы | Полная трассировка /usr/lib/ruby/1.8/active_support/dependencies.rb:426:in load_missing_constant'
/usr/lib/ruby/1.8/active_support/dependencies.rb:80:in
const_missing' /usr/lib/ruby/1.8/active_support/dependencies.rb:92:in const_missing'
/usr/lib/ruby/1.8/active_support/dependencies.rb:437:in
load_missing_constant' /usr/lib/ruby/1.8 /active_support/dependencies.rb:96:in const_missing'
/home/dave/work/depot/app/controllers/store_controller.rb:14:in
find_cart' /home/dave/work/depot/app/controllers/store_controller.rb:8:in `add_to_cart' Параметры запроса: {"authenticity_token"=>"38s45mRICYPJ7dw+z/rlcBnQN7T8ZwfEThzUTFurjeM =", "id"=>"3"} Показать заголовки ответа дампа сеанса: {"Content-Type"=>"", "Cache-Control"=>"no-cache"}
def add_product(product)
current_item = @items.find {|item| item.product == product}
if current_item
current_item.increment_quantity
else
@items << CartItem.new(product)
end
end
Я выполнил поиск по этому вопросу в Google, и похожая ошибка, похоже, связана с кодировкой utf-8. Я использовал Gedit, чтобы сохранить файл в западной (ISO 8859-15) кодировке, и это не имело никакого значения. Я также перепечатывал программы в Vi безрезультатно. Каждый раз, когда я вносил изменения, я останавливал и перезапускал сервер, а также вводил db:sessions:clear в терминал.
Я в тупике. Есть идеи?