f1r4s
(Eddie)
1
こんにちは。
ユーザー名に関して奇妙な問題が発生しています。私のボードはRTL(右から左へ)を使用しており、アラビア語のキーワードに固有の言語を使用しています。
ユーザー名は英語の単語に設定されていますが、ログを確認すると、ユーザープロファイルテンプレートが見つからないと表示されます。これはアラビア語のキーワードにあるためです。
ユーザー名を変更しようとすると英語に設定されていますが、エラーではアラビア語のキーワードが表示されます。
以下に完全なエラーを示します。
メッセージ
ActionView::Template::Error (No route matches {:action=>"show", :controller=>"users", :username=>"دعم_المجتمع"}, possible unmatched constraints: [:username]
Did you mean? user_url
users_url
users_path
user_badge_url)
app/views/about/index.html.erb:17
app/views/about/index.html.erb:15
app/controllers/about_controller.rb:16:in `block (2 levels) in index'
app/controllers/about_controller.rb:14:in `index'
app/controllers/application_controller.rb:387:in `block in with_resolved_locale'
app/controllers/application_controller.rb:387:in `with_resolved_locale'
lib/middleware/omniauth_bypass_middleware.rb:71:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:354:in `call'
config/initializers/100-quiet_logger.rb:23:in `call'
config/initializers/100-silence_logger.rb:31:in `call'
lib/middleware/enforce_hostname.rb:23:in `call'
lib/middleware/request_tracker.rb:198:in `call'
Backtrace
actionpack (6.1.4.1) lib/action_dispatch/journey/formatter.rb:44:in `path'
actionpack (6.1.4.1) lib/action_dispatch/routing/route_set.rb:823:in `url_for'
actionpack (6.1.4.1) lib/action_dispatch/routing/route_set.rb:270:in `call'
actionpack (6.1.4.1) lib/action_dispatch/routing/route_set.rb:326:in `block in define_url_helper'
app/views/about/index.html.erb:17
activerecord (6.1.4.1) lib/active_record/relation/delegation.rb:88:in `each'
activerecord (6.1.4.1) lib/active_record/relation/delegation.rb:88:in `each'
app/views/about/index.erb:15
actionview (6.1.4.1) lib/action_view/base.rb:247:in `public_send'
actionview (6.1.4.1) lib/action_view/base.rb:247:in `_run'
Env
HTTP HOSTS: forum.com
管理パネルで試しましたがうまくいかないため、コンテナ内部から修正する必要があると考えています。
何か提案はありますか?
f1r4s
(Eddie)
2
Discourseでユニークなアバターを適用する方法について、何か提案はありますか?アラビア語のユーザー名や、ユニークなUTF-8エンコーディングを使用できるようにしたいのですが。
アラビア語のユーザー名については経験がありませんが、これは unicode usernames が役立つケースでしょうか?
f1r4s
(Eddie)
4
はい、確認済みですが、問題はそのまま残っています。ただし、エラーが変わりました。
Message
NoMethodError (undefined method `url' for nil:NilClass)
app/models/badge.rb:306:in `image_url'
(eval):10:in `_fast_attributes'
lib/freedom_patches/ams_include_without_root.rb:54:in `include!'
lib/freedom_patches/ams_include_without_root.rb:54:in `include!'
app/controllers/application_controller.rb:510:in `render_json_dump'
app/controllers/users_controller.rb:97:in `block (2 levels) in show'
app/controllers/users_controller.rb:89:in `show'
app/controllers/users_controller.rb:103:in `show_card'
app/controllers/application_controller.rb:387:in `block in with_resolved_locale'
app/controllers/application_controller.rb:387:in `with_resolved_locale'
lib/middleware/omniauth_bypass_middleware.rb:71:in `call'
lib/middleware/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:356:in `call'
config/initializers/100-quiet_logger.rb:23:in `call'
config/initializers/100-silence_logger.rb:31:in `call'
lib/middleware/enforce_hostname.rb:23:in `call'
lib/middleware/request_tracker.rb:198:in `call'
Backtrace
app/models/badge.rb:306:in `image_url'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:99:in `block in attribute'
(eval):10:in `_fast_attributes'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:468:in `rescue in attributes'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:455:in `attributes'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:480:in `_serializable_hash'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:359:in `serializable_hash'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:448:in `block in merge_association'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:445:in `each'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:445:in `merge_association'
Env
HTTP HOSTS: site.com
f1r4s
(Eddie)
7
フォーラムのバッジセクションに問題があるようです。コンテナでこのコマンドを実行しようとしていますが、方法がわかりません。
Discourse.system_user.create_user_profile
このコマンドでバッジの問題が修正されるはずですが、このコマンドを実行する方法、またはどこで実行するかを誰かが教えてくれるとありがたいです。
[1] pry(main)> Discourse.system_user.create_user_profile
ActiveRecord::RecordNotUnique: PG::UniqueViolation: ERROR: duplicate key value violates unique constraint "user_profiles_pkey"
DETAIL: Key (user_id)=(-1) already exists.
from /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rack-mini-profiler-2.3.3/lib/patches/db/pg.rb:69:in `exec_params'
Caused by PG::UniqueViolation: ERROR: duplicate key value violates unique constraint "user_profiles_pkey"
DETAIL: Key (user_id)=(-1) already exists.
from /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rack-mini-profiler-2.3.3/lib/patches/db/pg.rb:69:in `exec_params'
よろしくお願いします。
cocococosti
(Constanza Abarca)
8
なぜそう思われるのですか? create_user_profile メソッドは手動で実行することを意図したものではなく、ユーザーが作成された後に Discourse によって実行されるものだと思います。discourse/app/models/user.rb at main · discourse/discourse · GitHub
すでに存在するユーザープロファイルを作成しようとしているため、「重複キー値」エラーが発生します。
ユーザー名 دعم_المجتمع でアカウントを作成してこのエラーを再現しようとしましたが、英語のユーザー名のアカウントでもテストしましたが、どちらもインターフェイス言語はアラビア語に設定されており、正常に動作しました。
この問題は、あなたがここで指摘したように、言語やテンプレートではなく、バッジの画像が欠落していることに関連していると思います。Badge image missing issue
f1r4s
(Eddie)
9
その通りです。いずれにせよ、これはバックアップであり、復元したら正常に動作しました。問題はバッジ画像のみです。コマンドを実行してみました。
rake uploads:clean_up
rake posts:rebake
しかし、問題は同じままです。
[2] pry(main)> Discourse.system_user.create_user_profile
ActiveRecord::RecordNotUnique: PG::UniqueViolation: ERROR: duplicate key value violates unique constraint "user_profiles_pkey"
DETAIL: Key (user_id)=(-1) already exists.
from /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rack-mini-profiler-2.3.3/lib/patches/db/pg.rb:69:in `exec_params'
Caused by PG::UniqueViolation: ERROR: duplicate key value violates unique constraint "user_profiles_pkey"
DETAIL: Key (user_id)=(-1) already exists.
from /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rack-mini-profiler-2.3.3/lib/patches/db/pg.rb:69:in `exec_params'
[3] pry(main)>
「いいね!」 1