Locations 插件 🌍

::+1::t2:

4 个赞

你解决这个问题了吗?

1 个赞

用户卡片基于的目录破坏了用户卡片上的 Ember 插件出口。您需要向该组件的负责人报告此问题。

1 个赞

我只是想让用户帖子下方显示用户位置,这能实现吗?

用户帖子?还是用户卡片?

帖子没问题,我不介意卡片,这样可以吗?

2 个赞

不,目前我们仅支持主题级别和用户位置。

真遗憾!我的社区非常想知道大家来自哪里。

用户卡片上的功能似乎也无法正常工作,那边正常吗?

谢谢。

1 个赞

这不是自动化的(部分出于隐私考虑)。用户必须在其个人资料中明确设置其位置。他们有权自行决定选择哪个位置,从而决定他们显示在何处。

如果您想要更复杂的功能,那可能需要一个有资金支持的项目来实现该 #marketplace。

1 个赞

好的,谢谢,我会考虑一下并回复您。对于已资助的项目,您能否在帖子中用户名下方显示用户的位置?

2 个赞

所以如果我使用这个 Locations 插件,就无法同时使用 Follow 插件和 User Card Directory 主题分类了,是吗?有点可惜,真希望能三者兼用。问题出在哪里?为什么 Locations 插件会与它们冲突?

2 个赞

这是我目前所知的唯一用户卡片目录,但不兼容情况确实可能发生。

例如:有人可能会覆盖单体模板,却忘记保留插件出口。我们无法防范此类行为。不过,大型插件开发者(如我们和 Discourse)通常会非常谨慎,避免此类情况发生。

3 个赞

是否有努力使此插件成为官方插件?

1 个赞

您好,
最新更新存在问题。Comparing 83a6ad32...fc0da499 · discourse/discourse · GitHub
谢谢!:slight_smile:

3 个赞

嘿,感谢你的报告。

是的,这个问题有点奇怪,而且我其实并不完全确定是 Locations 插件的错(尽管我们可能遵循了不良实践?)。

看来在插件初始化期间,一次 Discourse 迁移导致模型(实际上是序列化器)与数据库处于不一致状态。

解决方案非常简单:

  1. 从 app.yml 中移除 Locations。
  2. 重新构建(关键步骤是数据库迁移。完成后……)< – 我怀疑你正卡在这一步?
  3. 将 Locations 重新添加回 app.yml。
  4. 再次重新构建。

:tada:

3 个赞

你好,Robert,

太棒了!:heart: 谢谢。我已经取消了 Locations 插件的注释,重建也成功运行了。看起来一切都很顺利。再次感谢你的快速帮助!:slightly_smiling_face:

2 个赞

嗨,Robert,

不幸的是,最新的更新似乎阻止了 Locations 页面路由 /u/user-map?period=location。也许是这个提交?FIX: Always serialize the correct attributes for DirectoryItems (#13510) · discourse/discourse@60a7673 · GitHub

浏览器控制台和日志中也出现了一些错误。

信息

NoMethodError (undefined method `each' for nil:NilClass)
app/serializers/directory_item_serializer.rb:41:in `attributes'
app/controllers/application_controller.rb:494:in `serialize_data'
app/controllers/application_controller.rb:397:in `block in with_resolved_locale'
app/controllers/application_controller.rb:397: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:355:in `call'
config/initializers/008-rack-cors.rb:25: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:177:in `call'

回溯

app/serializers/directory_item_serializer.rb:41: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/array_serializer.rb:89:in `block in _serializable_array'

active_model_serializers (0.8.4) lib/active_model/array_serializer.rb:79:in `map'

active_model_serializers (0.8.4) lib/active_model/array_serializer.rb:79:in `_serializable_array'

active_model_serializers (0.8.4) lib/active_model/array_serializer.rb:73:in `serializable_array'

active_model_serializers (0.8.4) lib/active_model/array_serializer.rb:53:in `as_json'

app/controllers/application_controller.rb:494:in `serialize_data'

plugins/discourse-locations/lib/users_map.rb:15:in `index'

actionpack (6.1.3.2) lib/action_controller/metal/basic_implicit_render.rb:6:in `send_action'

actionpack (6.1.3.2) lib/abstract_controller/base.rb:228:in `process_action'

actionpack (6.1.3.2) lib/action_controller/metal/rendering.rb:30:in `process_action'

actionpack (6.1.3.2) lib/abstract_controller/callbacks.rb:42:in `block in process_action'

activesupport (6.1.3.2) lib/active_support/callbacks.rb:117:in `block in run_callbacks'

app/controllers/application_controller.rb:397:in `block in with_resolved_locale'

i18n (1.8.10) lib/i18n.rb:314:in `with_locale'

app/controllers/application_controller.rb:397:in `with_resolved_locale'

activesupport (6.1.3.2) lib/active_support/callbacks.rb:126:in `block in run_callbacks'

activesupport (6.1.3.2) lib/active_support/callbacks.rb:137:in `run_callbacks'

actionpack (6.1.3.2) lib/abstract_controller/callbacks.rb:41:in `process_action'

actionpack (6.1.3.2) lib/action_controller/metal/rescue.rb:22:in `process_action'

actionpack (6.1.3.2) lib/action_controller/metal/instrumentation.rb:34:in `block in process_action'

activesupport (6.1.3.2) lib/active_support/notifications.rb:203:in `block in instrument'

activesupport (6.1.3.2) lib/active_support/notifications/instrumenter.rb:24:in `instrument'

activesupport (6.1.3.2) lib/active_support/notifications.rb:203:in `instrument'

actionpack (6.1.3.2) lib/action_controller/metal/instrumentation.rb:33:in `process_action'

actionpack (6.1.3.2) lib/action_controller/metal/params_wrapper.rb:249:in `process_action'

activerecord (6.1.3.2) lib/active_record/railties/controller_runtime.rb:27:in `process_action'

actionpack (6.1.3.2) lib/abstract_controller/base.rb:165:in `process'

actionview (6.1.3.2) lib/action_view/rendering.rb:39:in `process'

rack-mini-profiler (2.3.2) lib/mini_profiler/profiling_methods.rb:111:in `block in profile_method'

actionpack (6.1.3.2) lib/action_controller/metal.rb:190:in `dispatch'

actionpack (6.1.3.2) lib/action_controller/metal.rb:254:in `dispatch'

actionpack (6.1.3.2) lib/action_dispatch/routing/route_set.rb:50:in `dispatch'

actionpack (6.1.3.2) lib/action_dispatch/routing/route_set.rb:33:in `serve'

actionpack (6.1.3.2) lib/action_dispatch/journey/router.rb:50:in `block in serve'

actionpack (6.1.3.2) lib/action_dispatch/journey/router.rb:32:in `each'

actionpack (6.1.3.2) lib/action_dispatch/journey/router.rb:32:in `serve'

actionpack (6.1.3.2) lib/action_dispatch/routing/route_set.rb:842:in `call'

lib/middleware/omniauth_bypass_middleware.rb:71:in `call'

rack (2.2.3) lib/rack/tempfile_reaper.rb:15:in `call'

rack (2.2.3) lib/rack/conditional_get.rb:27:in `call'

rack (2.2.3) lib/rack/head.rb:12:in `call'

actionpack (6.1.3.2) lib/action_dispatch/http/permissions_policy.rb:22:in `call'

lib/content_security_policy/middleware.rb:12:in `call'

lib/middleware/anonymous_cache.rb:355:in `call'

config/initializers/008-rack-cors.rb:25:in `call'

rack (2.2.3) lib/rack/session/abstract/id.rb:266:in `context'

rack (2.2.3) lib/rack/session/abstract/id.rb:260:in `call'

actionpack (6.1.3.2) lib/action_dispatch/middleware/cookies.rb:689:in `call'

actionpack (6.1.3.2) lib/action_dispatch/middleware/callbacks.rb:27:in `block in call'

activesupport (6.1.3.2) lib/active_support/callbacks.rb:98:in `run_callbacks'

actionpack (6.1.3.2) lib/action_dispatch/middleware/callbacks.rb:26:in `call'

actionpack (6.1.3.2) lib/action_dispatch/middleware/actionable_exceptions.rb:18:in `call'

actionpack (6.1.3.2) lib/action_dispatch/middleware/debug_exceptions.rb:29:in `call'

actionpack (6.1.3.2) lib/action_dispatch/middleware/show_exceptions.rb:33:in `call'

logster (2.9.6) lib/logster/middleware/reporter.rb:43:in `call'

railties (6.1.3.2) lib/rails/rack/logger.rb:37:in `call_app'

railties (6.1.3.2) lib/rails/rack/logger.rb:28:in `call'

config/initializers/100-quiet_logger.rb:23:in `call'

config/initializers/100-silence_logger.rb:31:in `call'

actionpack (6.1.3.2) lib/action_dispatch/middleware/remote_ip.rb:81:in `call'

actionpack (6.1.3.2) lib/action_dispatch/middleware/request_id.rb:26:in `call'

lib/middleware/enforce_hostname.rb:23:in `call'

rack (2.2.3) lib/rack/method_override.rb:24:in `call'

actionpack (6.1.3.2) lib/action_dispatch/middleware/executor.rb:14:in `call'

rack (2.2.3) lib/rack/sendfile.rb:110:in `call'

actionpack (6.1.3.2) lib/action_dispatch/middleware/host_authorization.rb:92:in `call'

rack-mini-profiler (2.3.2) lib/mini_profiler/profiler.rb:384:in `call'

message_bus (3.3.6) lib/message_bus/rack/middleware.rb:61:in `call'

lib/middleware/request_tracker.rb:177:in `call'

railties (6.1.3.2) lib/rails/engine.rb:539:in `call'

railties (6.1.3.2) lib/rails/railtie.rb:207:in `public_send'

railties (6.1.3.2) lib/rails/railtie.rb:207:in `method_missing'

rack (2.2.3) lib/rack/urlmap.rb:74:in `block in call'

rack (2.2.3) lib/rack/urlmap.rb:58:in `each'

rack (2.2.3) lib/rack/urlmap.rb:58:in `call'

unicorn (6.0.0) lib/unicorn/http_server.rb:634:in `process_client'

unicorn (6.0.0) lib/unicorn/http_server.rb:732:in `worker_loop'

unicorn (6.0.0) lib/unicorn/http_server.rb:547:in `spawn_missing_workers'

unicorn (6.0.0) lib/unicorn/http_server.rb:143:in `start'

unicorn (6.0.0) bin/unicorn:128:in `<top (required)>'

vendor/bundle/ruby/2.7.0/bin/unicorn:23:in `load'

vendor/bundle/ruby/2.7.0/bin/unicorn:23:in `<main>'

谢谢!:slight_smile:

3 个赞

感谢您的报告。如果使用 Pavilion 插件,请勿在支持期之外进行升级,因为我们可能无法随时解决由此引发的破坏性变更问题。我会在方便时查看。

3 个赞

@Don 好的,我今天抽空修复了这个问题,因为我最近手头有一些付费工作非常紧急,所以觉得最好先把它解决掉 :sweat_smile:

我花了不少时间,毫不避讳地说,那些改动确实相当晦涩!:sweat_smile:

结果如下:COMPATIBILITY: fix for recent major changes to user directory code · merefield/discourse-locations@8a16b16 · GitHub

此外,我可能还带来了一个额外的小好处:速度或许会稍快一些。为此,我利用新设计进行了进一步修改,以减少序列化的数据量:cut down unnecessary data · merefield/discourse-locations@66d0120 · GitHub

@markvanlan 供你参考。

5 个赞

你好,Robert,
我非常感激。非常感谢你的工作和付出。:heart:
刚刚更新并测试了……一切运行良好!:slight_smile:

5 个赞