J'essaie de diviser Backend et Frontend dans mon projet en utilisant Rails et ReactJS.Jbuilder utilise une requête POST pour API dans Ruby On Rails
Et j'ai une fonction pour effectuer le traitement async pour POST
demande et en utilisant la gemme Jbuilder pour produire l'API JSON
JavaScript:
fetch('shops/1/deals',{
method: "POST",
body: JSON.stringify({shop_id: 1, deals_type: "workout"}),
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
})
.then(function(res){
console.log(res)
res.json().then(function(data){
alert(JSON.stringify(data))
})
})
Controller:
def index
@shop = Shop.find(params[:id])
@deals = @shop.deals
end
def create
@deal = Deal.new(deal_params)
respond_to do |format|
if @deal.save
format.json { render :show, status: :created, location: @deal }
else
format.json { render json: @deal.errors, status: :unprocessable_entity }
end
end
end
si j'ai le fichier _deal.json.jbuilder
en views/deals
json.extract! deal, :id, :shop_id, :deals_type, :created_at, :updated_at, :deal_time
J'obtiendrai alerte {id: number, shop_id: 1, deals_type: "workout", .....}
Mais je supprimer le fichier _deal.json.jbuilder
, je vais obtenir {}
objet nul.
Pourquoi le problème se produit-il?