Rails Server требует перезапуска для отображения изменений

В настоящее время я изучаю Ruby on Rails с помощью книги "Agile Web Development with Rails", но у меня проблема с первым приложением.

Я создал приложение с помощью rails new depot и сгенерировал скаффолд с помощью

rails generate scaffold Product \title:string description:text image_url:string price:decimal

Потом я побежал rake db:migrate

Согласно книге, теперь я должен иметь возможность создавать новые продукты, которые затем будут отображаться немедленно. Но при добавлении нового продукта он не отображается при просмотре URL-адреса http://localhost:3000/products или http://localhost:3000/products.json. Когда я просматриваю файл базы данных, добавленные продукты присутствуют.

Добавленные продукты отображаются в списке после перезапуска сервера. Кто-нибудь знает, что я сделал не так?

Использование: Rails 3.2.4, Ruby 1.9.3, WEBrick 1.3.1, SQLite 3 и Mac OSX.

РЕДАКТИРОВАТЬ: код, сгенерированный эшафотом:

   products_controller.rb
      # GET /products
      # GET /products.json
      def index
        @products = Product.all

        respond_to do |format|
          format.html # index.html.erb
          format.json { render json: @products }
        end
      end

index.html.erb  
<h1>Listing products</h1>
<table>
  <tr>
    <th>Title</th>
    <th>Description</th>
    <th>Image url</th>
    <th>Price</th>
    <th></th>
    <th></th>
    <th></th>
  </tr>

<% @products.each do |product| %>
  <tr>
    <td><%= product.title %></td>
    <td><%= product.description %></td>
    <td><%= product.image_url %></td>
    <td><%= product.price %></td>
    <td><%= link_to 'Show', product %></td>
    <td><%= link_to 'Edit', edit_product_path(product) %></td>
    <td><%= link_to 'Destroy', product, confirm: 'Are you sure?', method: :delete %></td>
  </tr>
<% end %>
</table>

<br />

<%= link_to 'New Product', new_product_path %>

person Rene Koller    schedule 05.06.2012    source источник
comment
Как вы добавили товар в таблицу?   -  person Anil    schedule 06.06.2012
comment
Я добавил его со стандартной ссылкой на новый продукт, которая создается автоматически.   -  person Rene Koller    schedule 06.06.2012
comment
Можете ли вы показать нам, как вы обрабатываете/получаете нашу продукцию? Я имею в виду контроллер действий. Ваш сервер запущен в режиме разработки?   -  person Sebastien    schedule 06.06.2012
comment
Я добавил код, запуск сервера в режиме разработки с -e development ничего не меняет. Также я не думаю, что это проблема со средой, в которой я нахожусь: когда я перезагружаю страницу, индекс функции должен снова загружать продукты, но вывод сервера терминалов показывает, что он не загружает их снова, только один раз после перезапуска. сервер. Отображение вновь вставленной строки после обновления страницы «Продукты» должно работать и в производственной среде.   -  person Rene Koller    schedule 06.06.2012
comment
Никто? Почему контроллер не запрашивает базу данных? Он всегда показывает ActiveRecord: 0,0 мс   -  person Rene Koller    schedule 08.06.2012


Ответы (1)


Бьюсь об заклад, ваша версия Rails 3.2.4? Просто обновите версию Rails до 3.2.5+, и все будет в порядке.

Это регрессионная ошибка в Rails, возникшая в версии 3.2.4. Исправлено: https://github.com/rails/rails/commit/7056079761eba049bbc6108946a1626df169db>

person Patrick Teng    schedule 14.06.2012