fast_jsonapiで、Railswayに乗ってないbelongs_toを定義する
問題
以下のような、ナチュラルキーを使用しているなどして、関連にforeign_key、primary_keyを指定している場合を例にする。
class Book < ApplicationRecord has_many :sells, foreign_key: :isbn, primary_key: :isbn end class Sell < ApplicationRecord belongs_to :book, foreign_key: :isbn, primary_key: :isbn end
SellSerializerにbelongs_to: bookを定義したいが、book_idを探しに行ってしまう。
class SellSerializer include FastJsonapi::ObjectSerializer belongs_to: book end render json: SellSerializer.new(sell).serialized_json => #<NoMethodError: undefined method `book_id' for #<Sell:0x000000000000>
対策
ブロックにて、明示的にbookを返してやる。
class SellSerializer include FastJsonapi::ObjectSerializer belongs_to: book do |object| object.book end end
環境
- fast_jsonapi 1.4
備考
他のオプションを使っても、解決できるかも。