1

オブジェクトCountryのインスタンスをインスタンス化するためのデータstateNamesがあります。現在、国は1つだけですが、国ごとにstateNamesは異なる必要があります。私のデータでCountryのインスタンスをインスタンス化するための最良の方法は何ですか?私はGrailsを初めて使用するので、「ベストプラクティス」や一般的なデザインをいただければ幸いです。

私が考えることができる1つの解決策は、BootStrapを使用してCountryのunitedStatesインスタンスをデータベースに保存することです。このアプローチの短所は何ですか?

別の解決策は、web-appフォルダーの下のファイル(xml?)にデータを保存することです。このアプローチを行った場合、CountryのunitedStatesインスタンスをコントローラーでインスタンス化する必要がありますか?

4

2 に答える 2

1

プロジェクトは、コードをチェックアウトした後、セットアップなしで開発モードで実行することを目的とする必要があります。これを念頭に置いて、BootStrap.groovyユーザーアカウントや国名などの静的データなど、最小限のデータセットでデータベースを初期化するのに適した場所です。

一般的なパターンは、管理者ユーザーアカウントなどの既知のインスタンスをチェックし、存在しない場合は最小限のデータセットを挿入することです。例えば:

class BootStrap {

    def init = { servletContext ->
        def admin = User.findByUsername('admin')
        if (!admin) {
            // initialize the database by inserting a minimal data set
        }
    }
}
于 2012-12-18T17:23:29.940 に答える
0

入力を受け入れてDBに永続化するサービスを作成し、要件に応じてブートストラップでもコントローラーでも、どこからでも呼び出すことができます。ブートストラップは、重い物を持ち上げるのに適した方法です。

于 2012-12-18T17:01:20.130 に答える