我在电影的rails中有一个模型,在这个模型中,我有一个解析JSON的方法,并将每个电影添加到数据库中。
到目前为止,我的控制器有一个列出电影的索引,它有一个创建动作,触发解析JSON的模型方法。
def create
@movie = Movie.parse_json
if @movie
redirect to root_path
else
render new_movie_path
end
parse json方法只解析每个json元素并将其添加为新电影。
我的主要困境是我认为我做的事情有点不对,所以它变得困难了。如果出于某种原因电影无法保存,我想拥有它 - 它会增加一个错误并移动到下一个。在完全解析JSON之后,我可以看到哪些电影遇到错误。我尝试过做错误.add(:base,"电影#{movie.title}无法保存" ..然后在我的电影/ new.html.erb中有一个错误的循环,但@movie在那里是未定义的。
到目前为止,为了触发我的创建操作,我在new.html.erb上有一个按钮,它发送一个post请求来触发create动作,从而解析JSON。
<%= link_to "Get New Movies", movies_path, method: :post %>
哪些部分我做错了让这很困难。我想要它,所以从我的新电影页面我可以点击一个按钮,这会触发电影解析 - 在解析结束时如果有错误我可以显示它们 - 否则只需重定向到索引页面。如果我的控制器只创建了一个对象,但是解析json并创建多个记录的整个模型方法就是让我失望的事情,我可以这样做。