Cześć, mam mały problem i nie mam pojęcia jak go rozwiązać, dlatego zwracam się tutaj. Zbudowałem proste API w railsach (blog), a do frontu używam reacta. Problem pojawia się od strony frontu, aczkolwiek wklejam controller i widok jeżeli coś nie tak byłoby po stronie API. Dane o których mowa dalej, pobieram przez metodę show posta.
class V1::PostsController < ApplicationController
def index
@posts = Post.all
render :index, status: :ok
end
def create
@post = Post.new(post_params)
@post.save
render :create, status: :created
end
def show
@post = Post.find(params[:id])
render :show, status: :ok
end
def destroy
@post = Post.where(id: params[:id]).first
if @post.destroy
head(:ok)
else
head(:unprocessable_entity)
end
end
private
def post_params
params.require(:post).permit(:title, :contents, :image, :category_id, :user_id)
end
end
Widok show - show.json.jbuilder:
json.data do
json.post do
json.id @post.id
json.title @post.title
json.contents @post.contents
json.image @post.image
json.created_at @post.created_at
json.user_nickname @post.user.nickname
json.category_name @post.category.name
json.comments @post.comments do |comment|
json.id comment.id
json.body comment.body
json.post_id comment.post_id
json.user_nickname comment.user.nickname
json.created_at comment.created_at
end
end
end
Jak wysyłam request przez axiosa (react) to wszystko jest okej, dostaje dobry response, który zapisuje w reducerze (całość jako obiekt). Aczkolwiek problem pojawia się w momencie, gdy wyciągam dane z reducera gdy chce się do nich odwołać. Mam możliwość odwołania się do wszystkich danych oprócz komentarzy. Czyli gdy chce wyświetlić tytuł posta, to wszystko jest okej, ale gdy mapuje po komentarzach to wyskakuje mi błąd: „Cannot read property ‘map’ of undefined”. Sam już nie wiem w czym jest problem, macie może jakiś pomysł?
Response jaki otrzymuje w chwili pobrania: