ユーザーモデルにカスタムフィールドを追加しましたが、現在のユーザーオブジェクトで取得しようとしたときにカスタムフィールドが取得できませんでした。カスタムフィールドを取得するにはどうすればよいですか?
以下のコードを試しました。
require_dependency ‘user_serializer’
class ::UserSerializer
attributes :custom_thumbnail_style_dropdown
def custom_thumbnail_style_dropdown
object.custom_fields[custom_thumbnail_style_dropdown]
end
end
定義内で object.custom_thumbnail_style_dropdown も試しましたが、機能しませんでした。
以下のコードも試しました。
add_to_serializer(:user, :custom_thumbnail_style_dropdown, false) do
object.custom_thumbnail_style_dropdown
end
何かお手伝いいただければ幸いです!
Lhc_fl
(Linca)
2024 年 8 月 2 日午前 9:55
2
こんにちは @Harshit_Dave
Harshit Dave:
現在のユーザーオブジェクトで取得しようとしたとき
その場合は、UserSerializer ではなく CurrentUserSerializer に追加する必要があります
例:
add_to_serializer(:current_user, :can_create_poll) do
scope.user&.staff? || scope.user&.in_any_groups?(SiteSetting.poll_create_allowed_groups_map)
end
「いいね!」 2
こんにちは @Lhc_fl さん
メッセージありがとうございます!
:current_user シリアライザーを使ってみましたが、NoMethodError が発生しました。
以下のようなコードを試しました。Discourse は初めてなので、コードが正しいか確信がありません。
add_to_serializer(:current_user, :custom_thumbnail_style_dropdown) do
object.custom_thumbnail_style_dropdown
end
Lhc_fl
(Linca)
2024 年 8 月 2 日午前 10:22
4
object は UserSerializer ではなく User のインスタンスです。そのため、次のように記述する必要があります。
add_to_serializer(:current_user, :custom_thumbnail_style_dropdown) do
object.custom_fields["custom_thumbnail_style_dropdown"]
end
「いいね!」 4
system
(system)
クローズされました:
2024 年 9 月 1 日午前 10:27
6
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.