こんにちは!
かなり古いフォーラムバージョン(2.7.0)を最新のDiscourseバージョンに移行しています。遭遇している問題の1つは、「discourse/models/input-validation」が削除されたように見えることです。これを現在の正確なソリューションに移行するためのガイダンスを教えていただけますか?入力検証は現在かなり異なって行われているようです。
よろしくお願いします。
David
こんにちは!
かなり古いフォーラムバージョン(2.7.0)を最新のDiscourseバージョンに移行しています。遭遇している問題の1つは、「discourse/models/input-validation」が削除されたように見えることです。これを現在の正確なソリューションに移行するためのガイダンスを教えていただけますか?入力検証は現在かなり異なって行われているようです。
よろしくお願いします。
David
これはあなたが書いたプラグインですか?もし可能であれば、リンクを共有してもらえますか。
あるいは、何を検証しようとしているのですか。
こんにちは。はい、申し訳ありません。複数のプラグインです。プライベートなgitリポジトリにありますが、コード例をお送りすることは可能です。
@computed('model.title', 'lastValidatedAt')
titleValidation(title, lastValidatedAt) {
if(this.model.get('titleMissing') && !title) {
return InputValidation.create({ failed: true, reason: I18n.t('news.error.title_missing'), lastShownAt: lastValidatedAt });
}
},
ありがとうございます!
ちょっとした裏技をご紹介します(これは特にDiscourse固有のものではありません)。
開発用Discourseディレクトリで以下を実行します。
git log -SInputValidation -p
すると、
、すぐに現代的な代替案を見ることができます!
-import InputValidation from "discourse/models/input-validation";
+import EmberObject from "@ember/object";
export default Controller.extend({
adminWebHooks: inject(),
@@ -41,14 +41,14 @@ export default Controller.extend({
secretValidation(secret) {
if (!isEmpty(secret)) {
if (secret.indexOf(" ") !== -1) {
- return InputValidation.create({
+ return EmberObject.create({
failed: true,
reason: I18n.t("admin.web_hooks.secret_invalid")
});
<SNIP>
素晴らしい!それに関連するgitの変更を見つけられるかもしれないと思いましたが、私はgitの達人ではありません。ありがとうございます!とても助かります。name-validation.jsなどに存在する、より具体的な検証クラスを使用しなければならないと思っていました。これは十分に簡単そうです。