如果在我的 Discourse Calendar (and Event) 事件名称中加入引号,例如 Event name: RSVP “Going” to join
保存时会导致 PUT /posts/123 出现 500 错误(可能是由于 markdown 损坏),但糟糕的是,所有与会者似乎都已从事件中被清除。
注意:这与 Discourse Livestream 一起使用,但我认为这无关紧要。
如果在我的 Discourse Calendar (and Event) 事件名称中加入引号,例如 Event name: RSVP “Going” to join
保存时会导致 PUT /posts/123 出现 500 错误(可能是由于 markdown 损坏),但糟糕的是,所有与会者似乎都已从事件中被清除。
注意:这与 Discourse Livestream 一起使用,但我认为这无关紧要。
哎呀,我们将在下周某个时候看看这个问题。
鉴于您收到 500 错误,您能否查看 /logs 目录并告知我们您在那里看到的内容?
我认为问题在于未转义的引号破坏了事件标记,因此不会检测到事件,并且事件被销毁。然后,当我删除引号并再次保存时,会创建一个新事件。
序列化过程中出现的 500 错误可能是相关的副作用。
NoMethodError (undefined method `end_of_day' for nil)
plugins/discourse-calendar/app/models/discourse_post_event/event.rb:93:in `expired?'
plugins/discourse-calendar/app/models/discourse_post_event/event.rb:279:in `can_user_update_attendance'
plugins/discourse-calendar/app/serializers/discourse_post_event/event_serializer.rb:93:in `can_update_attendance'
(eval at /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/active_model_serializers-0.8.4/lib/active_model/serializer.rb:467):4: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:347:in `as_json'
activesupport (7.2.2.1) lib/active_support/json/encoding.rb:23:in `encode'
activesupport (7.2.2.1) lib/active_support/json/encoding.rb:23:in `encode'
activesupport (7.2.2.1) lib/active_support/core_ext/object/json.rb:42:in `to_json'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:331:in `to_json'
multi_json (1.15.0) lib/multi_json/adapters/oj.rb:56:in `dump'
multi_json (1.15.0) lib/multi_json/adapters/oj.rb:56:in `dump'
multi_json (1.15.0) lib/multi_json/adapter.rb:25:in `dump'
multi_json (1.15.0) lib/multi_json.rb:139:in `dump'
app/controllers/application_controller.rb:506:in `render_json_dump'
app/controllers/posts_controller.rb:301:in `update'
感谢您的报告 @dsims,一旦此 PR 合并,这个问题就会得到修复。
这不是“最佳”的修复方法,但至少如果用户在事件模态框的某个字段中输入 \",事件就不会中断。