Rails 5.2 с fast_jsonapi 1.5, Ember 3.4
Я создаю новую запись Tag в Ember:
let newTag = this.get('store').createRecord('tag', {
name: this.get('name')
});
newTag.save();
При этом отправляется следующий json (как показано на вкладке «Сеть» Chrome в качестве полезной нагрузки запроса):
{"data":{"attributes":{"name":"photos","created_at":null,"updated_at":null},"type":"tags"}}
Но Rails только получает (что подтверждается распечаткой параметров в методе создания TagsController):
{"controller"=>"tags", "action"=>"create"}
И выдает следующую ошибку:
ActionController::ParameterMissing (param is missing or the value is empty: tag)
А вот код моего контроллера:
# app/controllers/tags_controller.rb
class TagsController < ApplicationController
def create
tag = Tag.create!(tag_params)
render json: {status: "success"}
end
private
def tag_params
puts params
params.require(:tag).permit(:name)
end
end
Что за хитрость, чтобы заставить уголь и рельсы понять друг друга? Так как ember отправляет «тип» в полезной нагрузке, могу ли я заставить Rails понять, что это модель, и, таким образом, выполнить требование, которое я установил, чтобы «тег» присутствовал в параметрах?