我目前有一些模型,如User,UserMovieList和UserMovieListItem。
用户可以创建他们喜欢的喜剧电影或喜欢的恐怖电影的列表。创建新列表后,让我们说“我最喜欢的恐怖电影”,然后他们可以在列表中添加条目。他们可能会添加“星期五13号”和“响铃号”,然后保存。
现在我将这2部电影中的2部电影添加到网络服务器中,以便将它们添加到UserMovieListItem。
我希望能够在1个POST中添加它们。
{
"user_movie_list_item":
{
"title": "Friday the 13th"
}
}
我希望能够发送
{
"user_movie_list_item":
{
"title": "Friday the 13th"
},
{
"title": "The Ring"
}
}
1)这是JSON发送多个条目的正确格式吗?
2)我如何在我的控制器中执行此操作?
现在我有......
def create
if authenticate_user
user_movie_list = @current_user.user_movie_lists.find_by_id(params[:user_movie_list_id])
user_movie_list_item = user_movie_list.user_movie_list_items.new(user_movie_list_item_params)
if (user_movie_list_item.save!)
respond_with :api, :v1, @current_user, user_movie_list, user_movie_list_item, location: nil, serializer: Api::V1::UserMovieListItemSerializer
else
render json: { error: "Could not create new User Movie List Item."}, status: :unprocessable_entity
end
else
render json: { error: "User is not signed in." }, status: :unauthorized
end
end
如何制作,以便我可以一次添加多个记录?
答案 0 :(得分:0)
在您的模型中,您可以覆盖这样的分配:
def user_movie_list=(list)
list.each do | l |
ml = user_movie_list_items.new
ml.title = l.title
... # configure your list
ml.save!
end
end
JSON列表是:
{ "my_list": [{"title": "blah"}, {"title": "foo"}, ... ] }