0

コントローラーとモデルを作成しました。コントローラーを「Admin」、モデルを「Album」と呼びます。database.yml を適切な情報で編集し、rake db:migrate コマンドを実行しましたが、エラーは返されず、schema.rb 内のデータベースを移行しました。私が書いたコントローラの中で:

class AdminController < ApplicationController

  scaffold :album

end

次に、サーバーを起動してhttp://localhost:3000/adminに移動しましたが、典型的な CRUD ページが表示される代わりに、次のエラーが表示されます。

app/controllers/admin_controller.rb:3

Request

Parameters: 

None

Show session dump

--- 
flash: !map:ActionController::Flash::FlashHash

{}

Response

Headers: 

{"cookie"=>[],
 "Cache-Control"=>"no-cache"}

理由はありますか?

4

3 に答える 3

2

scaffolding のその構文は、かなり長い間廃止されてきました。現在、レール (バージョン 2.x) は、次の方法を使用してリソースを足場にしています。

script/generate scaffold Album title:string date:date ...

これにより、スキャフォールディング ビュー (app/views 内)、コントローラー (app/controllers)、標準テスト (test/ 内)、そして重要なことに、スキャフォールディングを機能させるために必要なルートが生成されます。

Rails 開発チームは古い構文 ("scaffold :resource") を削除したと思います。常に何らかのカスタマイズが必要になります。新しい構文ではそのままにしておくことができますが、カスタマイズもはるかに簡単です

コントローラーに admins という名前を付ける必要がある場合は、スキャフォールディングの生成後に config/routes.rb ファイルを変更できます。ただし、意味がありません。新しいアルバムを作成するための URI を「/admins/new」と呼ぶ必要があるのはなぜですか?

イメージ アルバム アプリの管理領域を作成しようとしている場合、名前空間を探している可能性があります (そのため、"admin" 名前空間内に複数の異なるリソース、コントローラー、およびビューを含めることができます)。admin 名前空間内にアルバム リソースを作成するには、次のように記述します。

script/generate scaffold Admin/Album title:string date:date

その場合、コントローラーはhttp://host/admin/albumsとしてアクセスできます。

于 2010-04-15T12:13:14.043 に答える
0

うーん、

通常、コントローラーと Admin というモデルがあり、アルバムについても同じことが言えます。

scaffolding を使用してブログを作成する方法について、この簡単なスクリーン キャストをご覧ください。

ウェブブログの作成

于 2010-04-15T11:10:15.650 に答える