Не уверен, что это можно решить. Как ты думаешь, @neil ?
j.jaffeux
(Joffrey Jaffeux)
13.Февраль.2020 09:40:22
3
Насколько мне известно, это происходит только потому, что регулярное выражение, которое у нас есть здесь:
end
advanced_filter(/\Ain:unseen\z/i) do |posts|
if @guardian.user
posts.joins(
"LEFT JOIN post_timings ON
post_timings.topic_id = posts.topic_id
AND post_timings.post_number = posts.post_number
AND post_timings.user_id = #{ActiveRecord::Base.connection.quote(@guardian.user.id)}
",
).where("post_timings.user_id IS NULL")
end
end
advanced_filter(/\Awith:images\z/i) { |posts| posts.where.not(posts: { image_upload_id: nil }) }
advanced_filter(/\Acategor(?:y|ies):(.+)\z/i) do |posts, terms|
category_ids = []
matches =
terms
не поддерживает эмодзи. Если бы оно соответствовало эмодзи, всё заработало бы после этого.
Возможно, стоит рассмотреть использование чего-то вроде: GitHub - ticky/ruby-emoji-regex: 💎 A set of Ruby regular expressions for matching Unicode Emoji symbols. · GitHub , чтобы получить качественное регулярное выражение для эмодзи.
Что ты думаешь, @sam ?
1 лайк
sam
(Sam Saffron)
13.Февраль.2020 10:22:48
4
О боже, это кажется одним большим монстром для поддержки важного частного случая. У нас уже есть регулярное выражение для валидации в классе Tag?
1 лайк
j.jaffeux
(Joffrey Jaffeux)
13.Февраль.2020 10:35:22
5
Не думаю, что у нас это есть, хотя могу ошибаться. @neil , наверное, знает лучше.
Насколько я знаю, у нас есть только функция clean_tag:
model.errors.add(:base, msg)
return false
end
end
true
end
def self.validate_one_tag_from_group_per_topic(guardian, model, category, tags = [])
tags_cant_be_used = filter_tags_violating_one_tag_from_group_per_topic(guardian, category, tags)
return true if tags_cant_be_used.blank?
tags_cant_be_used.each do |_, incompatible_tags|
model.errors.add(
:base,
I18n.t(
"tags.limited_to_one_tag_from_group",
tags: incompatible_tags.map(&:name).sort.join(", "),
),
)
end
Она примерно так же скопирована на стороне клиента здесь:
https://github.com/discourse/discourse/blob/master/app/assets/javascripts/select-kit/mixins/tags.js.es6#L80
Кроме того, это, вероятно, было бы полезно и в других местах, так как мы, например, генерируем это на стороне клиента: https://github.com/discourse/discourse/blob/master/app/assets/javascripts/pretty-text/emoji.js.es6#L24
2 лайка
neil
(Neil Lalonde)
13.Февраль.2020 16:25:49
6
Сомневаюсь, что у нас есть тесты для тегов с эмодзи. Может, стоит рассмотреть возможность поддержки этого в версии 2.5?
4 лайка
Я заметил, что при поиске только по тегу (без ключевого слова subway) возвращается только одна тема (и это не тема, опубликованная в первом сообщении):
https://urbantech-forum.cornelltech.io/search?expanded=true&q=tags%3Anew-york-city-🇺🇸
То же самое происходит и с другими ключевыми словами (но только для той темы, которая была возвращена ранее):
https://urbantech-forum.cornelltech.io/search?expanded=true&q=tags%3Anew-york-city-🇺🇸%20personal
Если не использовать теги, поиск работает корректно:
https://urbantech-forum.cornelltech.io/search?expanded=true&q=new-york-city-🇺🇸
Тема, возвращаемая ранее с тегом, является первой в результатах при поиске по ключевому слову, совпадающему с названием тега, но само сообщение — другое (хотя, возможно, это связано с метаданными или чем-то подобным в сообщении, что обнаруживается поиском, а не с самим тегом, но я не могу сказать точно).