ユーザーがシステム エンティティの 1 つでいくつかのカスタム フィールドを定義できるようにする必要があります。この機能をアプリケーションに追加するのに役立つ提案/パターン/プラグインはありますか?
ありがとう、
メニ
ユーザーがシステム エンティティの 1 つでいくつかのカスタム フィールドを定義できるようにする必要があります。この機能をアプリケーションに追加するのに役立つ提案/パターン/プラグインはありますか?
ありがとう、
メニ
Map プロパティをドメイン クラスに追加して、そこに任意のデータを格納できます。かなり限定的ですが。varchar(255) のキーと値を含むテーブルが生成されるため、型変換を自分で管理する必要があります。
class Thing {
String name
Map extraProperties = [:]
}
int age = 123
def thing = new Thing(name: 'whatever')
thing.extraProperties.age = age.toString()
thing.save()
...
def thing = Thing.get(thingId)
int age = thing.extraProperties.age.toInteger()
簡単なオンライン ドキュメントについては、 http: //grails.org/doc/latest/のセクション「5.2.4 セット、リスト、およびマップ」を参照してください。
アプリケーションを、ユーザーが自由に変更できる無限に調整可能なレンチにしたいようです。それは公平ですか?
私はそれが可能または望ましいとは思わない. Grails の既存のドメイン オブジェクトに属性を追加するとどうなるか考えてみてください。属性は ORM マッピングに追加されます。つまり、テーブルを変更する必要があります。UI には、データ入力用に別のテキスト ボックスが追加されています。リスト ページには、そのテーブルに追加された別の列があります。
属性を追加すると、多くのことが行われます。アプリを同時に変更する複数のユーザーをどのように管理しますか? あるユーザーがテーブルを変更しているときに別のユーザーが古いバージョンにアクセスするとどうなりますか?
あなたはあまりにも多くを求めます。合理的な要件ではないと思います。Grails のスイート スポットは、Web ベースの CRUD アプリケーションの迅速な開発です。実行時のユーザーによる変更は含まれていないと思います。