bennett
(Bennett Rogers)
1
ポストウィジェットにリンクを追加・更新できるテーマやプラグインを作成しようとしています。最も簡単な方法は、ポストシリアライザーにユーザープロフィールの website フィールドを含めることだと思っていますが、うまくいきません。
ポストシリアライザーを単純なデータを追加するように更新する方法はわかりましたが、ポストを作成したユーザーオブジェクトから取得するデータを追加する方法がわかりません。また、各ユーザーやポストごとにデータベースアクセスをトリガーする方法で行うことへの懸念もあります。
参考になる既存のプラグインはありますか?あるいは、プラグインに頼らずにテーマコンポーネントでウィジェットをオーバーライドすることで、ポストユーザーデータをポストシリアライザーに追加する方法はありますか?
よろしくお願いいたします!
「いいね!」 1
bennett
(Bennett Rogers)
2
これで少なくともそれなりに動くようになったと思います。投稿シリアライザーに website フィールドを追加する方法がわかりませんでしたし、user_custom_fields という名前のフィールドは追加できないようです(おそらく予約されているのでしょう)。代わりに user_extra_fields というフィールドを追加でき、これに user.custom_fields のすべてを含めることができました。その後、テーマコンポーネント内で必要な時にこれらのフィールドにアクセスできます(user_field_1 というフィールド名を使わなければならないのは少し奇妙ですが)。
以下が私の必要を満たすものです:
after_initialize do
add_to_serializer(:post, :user_extra_fields, false) {
return object.user.custom_fields
}
end
「いいね!」 2