2011-07-30 11 views
2

私はthe play tutorialを読んでいて、ちょっとしたことをスパイスにして、デフォルトモデル名を複数形にする代わりに@ CRUD.Forを使うことに決めました。問題は、そのモデルのテンプレートをオーバーライドしようとしていることです。@ CRUD.Forを使用すると、うまく動作しないように見えます。しかし、私はデフォルトの名前を使用する場合、それだけで動作します...@ CRUDを使用するとCRUDテンプレートを上書きできないのはなぜですか?

私が持っている:
1)@ CRUD.For(コメントで注釈を付け
アプリ/モデル/コメント
2)管理クラス拡張CRUDでモデル.classファイル)
アプリ/コントローラ/管理/ AdminComments
3)私は、ファイル
アプリ/ビュー/ AdminComments /リスト
4を持っている)私はコマンドを使用しています:
プレイCRUD:OV --template AdminCommentsを/リスト

次に、私は管理領域と何もチェックしません。私が言ったように、私がデフォルトの名前コメントを使用すると、それは機能します。

ありがとうございます。

答えて

1

遊戯のドキュメントでCRUD.Forの情報を読んでから、何か間違っていることはわかりません。私はあなたがファイルapp/views/AdminComments/listを持っていると言ったときにあなたが実際にapp/views/AdminComments/list.htmlを意味すると仮定します。そうでなければあなたの問題になりそうです。

また、あなたはplay crud:ov --templateを使用していますが、これはあなたのリストに残しておきます。このコマンドは、ビュー領域にテンプレートに基づいて新しいファイルを作成します。そのため、テンプレートを上書きして希望の動作をさせることができます。私は

  1. CRUD.Forアノテーションで、あなたのCRUDクラスを作成します
  2. モデルクラスを作成している右の順にそれを通過することをお勧め。あなたがapp/views/AdminComments/list.html
  3. で、models.Comment
  4. 実行playコマンドplay crud:ov --template AdminComments/list
  5. 編集生成されたテンプレートをインポート作ることAdminComments.javaがapp/controllersの内側にあり、あなたのlist.thmlがapp/views/AdminComments
+0

はいこれはlist.htmlでした。私はそれをもう一度試すために積極的で、あなたに秒単位でフィードバックを与えます。 – wleao

+3

Ok ...問題を発見しました。問題は私のAdminCommentsクラスがadmin(controllers.admin)と呼ばれるサブパッケージの中にあり、ビュー内の構造がadmin/AdminComments/list.htmlになっているはずですが、crud:ovは再生できませんその構造を認識すると、明らかに存在しないadmin/AdminComments.htmlと一緒に行こうとします。 – wleao

+0

はい、通常コントローラをコントローラパッケージに入れておき、サブパッケージではなく、 – Codemwnci

1

あなたAdminCommentsであることを確認してくださいクラスがサブパッケージadmincontrollers.admin)の中にあり、コントローラパッケージの中に直接入っていません。したがって、ビューディレクトリ内にadminという名前のフォルダを作成し、生成されたファイルapp/views/AdminComments/list.htmlをこのディレクトリに移動する必要があります。これでファイルパスはapp/views/admin/AdminComments/list.htmlになります。

これは私のために働いた。しかし、crud:ovコマンドはこれを単独で処理する必要があります。

関連する問題