カスタムユーザーフィールドの作成と設定

railsコンソールを使って並べ替えることができると思います。タイプミスをせずに名前を入力するのは難しいため、IDでフィールドを入力することを選択しました。

ids_in_order = [3, 7, 8, 5, 1, 2]

ids_in_order.each_with_index do |id, index|
  UserField.find(id).update!(position: index)
end
「いいね!」 1

「カテゴリの並べ替え」ウィンドウは次のようになります。Discourseにこれが存在するなら、ユーザーフィールドにも使用する方法があるのではないでしょうか?

「いいね!」 1

そうは思いませんが、最近、ユーザーカードとプロフィールページでカスタムフィールドの元の表示を非表示にし、その後、オプションで一部をHTMLセーフにする(API経由でユーザーが編集できないカスタムフィールドに情報を追加しているため)テーマコンポーネントを作成しました。同じ考え方を使って、カードやプロフィールに表示される順序を変更するために、カスタムフィールドに順序フィールドを追加できると思います。

ユーザーフィールドの並べ替えには、既存の方法を使用できると思います。位置を変更するたびにメニューを再度開かなければならないのは、少し非実用的です。いくつかの位置を移動するとき、これはいくらか面倒です。

しかし、ボタンを常時表示させるコンポーネント、または上部に「並べ替えモード」のチェックボックスを設けてメニュー外でボタンを表示させるようにするだけでも、体験は向上するでしょう。

「いいね!」 1

ああ。面白いですね。ええ、しまった。それは私のアイデアよりもずっと良いですね。:rofl:

カスタムフィールドを作成し、それを検索可能に設定しました。しかし、ユーザーページ /u には「ユーザー名でフィルタリング」という検索フィールドしか表示されていません。カスタムフィールドの内容で検索しても結果が表示されません。

リストには値が表示されています(カスタマイザーで列をオンにしました)。したがって、これらの値が確かに存在していることは確認できます。

何が間違っているのでしょうか?

奇妙なことに、カスタムフィールドの値はリンク形式になっており、例えば u?cards=no&name=Female&order=likes_received のようになっています。これをクリックすると、name フィールドに対してその値で検索が実行されますが、何も返ってきません。

このフィールドの設定は以下の通りです:

また(これがヒントになるかどうかは不明ですが)、そのカスタムフィールドの列でソートすると、順列でも逆順でも、常に空のフィールドを持つユーザーがリストの上部に表示されます(異なるユーザーです)。このフィールドに値が入っているユーザーは少数ですが、空の値を持つユーザーがすべてリストの上部 または 下部に表示されることを期待していました。両方に現れるのはおかしいです。