0

Rails を使用してアプリケーションで sqlite テーブルを作成していました。コマンドを入力したチュートリアルの例を試しました。

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

ただし、実行すると機能し、テーブルが生成されました

rake db:migrate

いくつかの問題が発生しました:

SyntaxError in ProductsController#index
products_controller.rb:72: syntax error, unexpected ':', expecting ')' ...rams.require(:product).permit(: title, :description, :image_... ... ^ 

テーブルを調べたところ、タイトルと文字列の間に余分なスペースがあることがわかりました。次のようになります。

title : string
description :text
image_url :string
price :decimal

次に、それと対応するコントローラーを変更しました。変更前のコントローラーは次のようでした。ここにも余分なスペースがあります。

 def product_params
      params.require(:product).permit(: title, :description, :image_url, :price)
    end

その後、テーブルを作成しようとすると、同じ問題が何度も発生しました。最初の属性には常に余分なスペースがありますが、次の属性にはありません。それで、誰もが何が問題なのか知っていますか?どうもありがとう!:)

4

1 に答える 1

0

少し遅いかもしれませんが\、Rails ジェネレーターが次のようになるように を削除します。

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

は、複数行のコマンドで行の終わりを示すために使用されます。これ\を使用する場合は、Enter キーを押して次の行に書き込みを続けます。( ^Windows 上)。

すでにデータベースを作成している場合は、次を使用して再構築できます。

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

私のように、Rails 4 のアジャイル Web 開発でそのコードを見つけた場合。前の段落では、 について説明してい\ます。

数か月前に小さな障害物があなたをレールから遠ざけなかったことを願っています!

于 2014-02-11T23:08:32.013 に答える