I created a Ruby on Rails API application where I wanted to implement a JSON api with fast_jsonapi. Now I'm struggling with the relationships, which aren't shown. What do I have to change?
This is my schema.db:
create_table "candidates", force: :cascade do |t|
t.string "place"
t.string "zip_code"
t.string "address"
t.string "date_of_birth"
t.string "title"
t.string "profile_picture"
t.string "first_name"
t.string "last_name"
t.string "email_address"
t.boolean "confirm_terms_and_conditions"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "candidates_degrees", id: false, force: :cascade do |t|
t.bigint "candidate_id"
t.bigint "degree_id"
t.index ["candidate_id"], name: "index_candidates_degrees_on_candidate_id"
t.index ["degree_id"], name: "index_candidates_degrees_on_degree_id"
end
create_table "degrees", force: :cascade do |t|
t.string "degree"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
And these are my models:
class Candidate < ApplicationRecord
has_and_belongs_to_many :degrees, dependent: :nullify
end
class Degree < ApplicationRecord
has_and_belongs_to_many :candidates, dependent: :nullify
end
These are my serializers:
class CandidateSerializer
include FastJsonapi::ObjectSerializer
attributes :place, :zip_code, ...
has_many :degrees
end
class DegreeSerializer
include FastJsonapi::ObjectSerializer
attributes :degree
has_many :candidates
end
you need to do changes in your
CandidateSerializer
andDegreeSerializer
.Instead of writing the separate HABTM relation in serializer you can directly right in
attributes
e.g
response
same for
DegreeSerializer