問題タブ [grails-3.0.9]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
grails - Grails HQL の名前付きパラメータが機能しない
プラットフォーム | Grails バージョン: 3.0.7 | Groovy バージョン: 2.4.4 | JVM バージョン: 1.8.0_51
Grails HQL クエリで名前付きパラメーターを使用できないようです。以下は機能します (Grails サービス クラス内)。
ただし、以下は機能しません。
表示されるエラーは次のとおりです。
私が正しいと思うことに反して、プロパティを宣言します...
報告されたエラーは次のとおりです。
最後のテストとして、変数宣言と名前付きパラメーター リストを削除して、次のことを試します。
そして当然のことながら、メッセージは次のように返されます。
誰かが私が犯している間違いを教えてもらえますか? 位置パラメーターは検索だけで機能しているようですが、名前付きパラメーターのマップを渡すと、この奇妙なエラーが発生します
grails - Grails 3.0.9 gradle カスタム環境での新しいタスク
「統合」と呼ばれるカスタム環境で「チェック」を実行するために、build.gradle に新しいタスクを作成しようとしています。
いくつかのことを試しましたが、カスタム タスクからチェック タスクを実行できましたが、int で環境を設定する方法が見つかりません。
これは、現在 build.gradle で行っているタスクです。コメントは私が試したことに関するものですが、プロパティが存在しないためすべて失敗します。タスクを type:GrailsTask として設定しようとしましたが、うまくいきませんでした
編集:@vinay-prajapatiの提案ごと
これで試しました:
そして、このエラーが発生します:
grails-3.0.9 - Fields プラグインを使用した Grails 3 - 数値や日付などのフィールドを特定の形式で表示する
Book ドメイン オブジェクトには、publicationYear フィールドがあります。ショー ビューでは、2,011 または 1,999 などと表示されます。2011 と表示されるはずです。以前は、単純な g:fomatNumber を使用して正しく処理していました。
フィールドのドキュメント ( http://grails-fields-plugin.github.io/grails-fields/guide/customizingFieldRendering.html ) によると、ディレクトリ grails-app/views/controllerName/actionName/propertyName/ を作成し、_wrapper を配置する必要があります。 .gsp テンプレートが含まれています。彼らは、そのファイルに何を入れるべきかを言いません。いろいろ試してみましたが、無視されているようです。年はまだ2,013年か何かです。
これは主に、さまざまな方法で日付を表示するために必要です。主に日または分の精度です。この場合、カンマを取り除きたいです。
これを行う方法はありますか?私は Grails 3.0.9 と Scaffolding 3.1.3 を使用しています。これより新しいものはテンプレートをインストールせず、片手でインストールしても無視されるためです。
grails - Grails プラグインの依存性注入がドメイン クラスとコントローラーで失敗する
| | Grails バージョン: 3.0.7
| | グルーヴィーなバージョン: 2.4.4
| | JVM バージョン: 1.8.0_51
grails プラグインをインストールしようとしています: Slug Generator 0.5 ( https://grails.org/plugin/slug-generator )
ただし、サービス依存性注入はドメイン クラスまたはサービスのいずれかで正しく機能せず、常に null 参照になります。
プラグインがサービスを正常に注入しないのを経験したのはこれが初めてではありません: Grails Geocode プラグイン依存性注入の問題
基本的に、サービス依存性注入が機能することを期待できないため、アプリケーション内で一部のプラグインを使用できない時点にいるようです。
誰かが洞察を提供できれば、私は最も感謝しています。
私は次のサンプルコードに従っています:
エラー ログの例を次に示します。
私が気付いたことの 1 つは、コマンド ラインで次のコマンドが何も返さないことです。
$ grails リストプラグイン | grep スラッグ
ただし、別のプラグインを検索すると、結果が得られます。
$ grails リストプラグイン | grep ジョーダ
ジョダタイム
スラグ ジェネレーター プラグインがクラスパスにあり、外部ライブラリを介してすべてのソースに実際にアクセスできることが (IntelliJ 経由で) はっきりとわかります。
多分それは問題へのヒントですか?
grails-plugin - Grails 3 - バージョン 2 の _form.gsp で可能だった方法でテンプレートのカスタマイズを実現
私は Grails に比較的慣れていないので、Grails 3 のフィールド プラグインで _form.gsp を削除した方法に少しがっかりしています。_form.gsp は、Bootsrap やマテリアライズでビューをカスタマイズする必要がある場合に、時間を節約するのに適したオプションのようです。
現在、grails 3 では、install-templates は _form.gsp を作成しません。このドキュメントに従って、view/_fields/default ディレクトリの下に _wrapper.gsp、_widget.gsp などを作成することでカスタマイズを実現できます。しかし、そのようなカスタム GSP の例を見つけることができません。
また、4 つの GSP (_wrapper.gsp、_widget.gsp、_displayWrapper.gsp、_displayWidget.gsp) をすべてカスタマイズすると、generate-view コマンドを実行したときに実際のコードが生成されるとしましょう。つまり、f:all、f:table などのタグを実際のコードに置き換えますか? そうでない場合は、かなりの量の作業が必要になると思います。ドメイン クラスに自信があり、すべての CRUD 操作をテストした後、すべてのドメイン固有の GSP を作成するために generate-view コマンドを実行します。次に、ほとんどの場合、フィールドの並べ替え、フィールドの一部の非表示など、要件に応じていくつかの変更を行う必要があります
結論として、私には2つの目標があります。
- デフォルトのテンプレートをカスタマイズして開発を開始します。
- generate-view を実行するとき、f:all、f:table などの抽象タグは必要ありません。生成されたドメインのビューをカスタマイズできるように、実際のフィールドを配置する必要があります。
誰かがこれを達成した場合は、解決策を共有してください。
grails - URL マッピング - データベースから取得したパラメーターの文字を置き換える
現在、使用している URL マッピングに統合されているパラメーターを変更する方法を理解しようとしています。
パラメータ $title は、データベースから取得され、次の形式で送信されるデータセットです [ this is a title ]。そのため、文字列の前後に角括弧があり、単語は空白で区切られています。
パラメータがネストされた状態で g:link を介してリンクを作成している場合、データベースから取得されるときに URL に挿入されます。私が試みているのは、SEO-URL を作成することです。これは、URL エンコードされた「%20」ではなく、ハイフンで区切られた出版物の特定のタイトルを表示します。
これまでは、次のような動的 URL を生成できました。
さらに、静的である必要があり、ユーザーがリンクをコピーしてページを開くことができる必要がありますが、JQuery を介して既に実装しています。ページの読み込み中にクライアント側で URL を変更する場合は不可能です。
replaceAll.(' ', '-') のような関数を定義する方法はありますか?これをマッピングのパラメーターに呼び出して、空白をハイフンに、fe 角かっこを空の文字に置き換えることができますか? それは、私がドキュメンテーションを通して得ることができなかったものです。
ご協力いただきありがとうございます。
grails - getのGrails3サービスメソッドでレコードの更新を防ぐ方法
アプリケーションには、Customer や Tenant などのドメイン クラスがほとんどありません。顧客ドメイン インスタンスには tenantId 参照がありますが、テナント ドメイン クラスとの関連付けはありません。
OrderController で Customer のタイプを取得しようとしています。複数のメソッドで使用されるため、Customer をフェッチするサービス メソッド「getClerkCustomer」を作成しました。ユーザーがログインすると、tenantId の値がセッションに保存されます。したがって、OrderController の tenantId 値はセッションから取得され、「getClerkCustomer」に渡されます。
「getClerkCustomer」が実行されると、タイプとテナント ID に基づいて顧客が取得されます。Customer レコードをフェッチするだけでなく、tenantId の Tenant レコードも更新します (バージョン値がインクリメントされます)。Customer レコードをフェッチするときに Tenant レコードのバージョンが増加する理由がわかりません。Grails には、名前でレコードを更新するための何らかの意図がありますか?
テナントが顧客フェッチ用に更新される理由と、それを回避する方法を誰か教えてもらえますか?
注 : この問題は、他のドメイン インスタンスでも発生します。一度インスタンスを更新すると、別のインスタンスのバージョンがインクリメントされます。上記はそのようなシナリオの 1 つです。