0

私は現在、「Railsを使用したアジャイルWeb開発」という本の助けを借りてRuby on Railsを学んでいますが、最初のアプリケーションに問題があります。

でアプリを作成し rails new depot 、でスキャフォールドを生成しました

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

それから私は走ったrake db:migrate

この本によると、私は今すぐに表示される新しい製品を作成できるはずです。http://localhost:3000/productsしかし、新しい製品を追加するとき、URLまたはを表示するときに表示されません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 %>
4

1 に答える 1

1

Railsのバージョンは3.2.4だと思いますか?Railsのバージョンを3.2.5+に更新するだけで、問題はありません。

これは、3.2.4で発生したRailsのリグレッションバグです。修正されました:https ://github.com/rails/rails/commit/7056079761eba049bbc6108946a1626fe169dbdf

于 2012-06-14T07:11:52.823 に答える