2015-10-02 70 views
0

我有一个json,我想要反序列化并保存到数据库。这里有一个代码片段:如何在JSON反序列化时忽略某些字段?

class WelcomeController < ApplicationController 
    def index 
    json_articles = JSON.parse('json_string_here') 
    json_articles['articles'].each do |article| 
     Article.new(article).save 
    end 
    end 
end 

反序列化过程中,我得到的是,在数据库架构article_link场缺席的原因以下错误:

未知属性“article_link”的文章。

所以,这里是我的问题:

  1. 如果我想反序列化如何能够实现时忽略这个领域?
  2. 如果对上面介绍的代码有评论?

谢谢。

回答

1

你可以做以下

Article.new(article.except('article_link')).save 

您可以通过使用

Article.create(article.except('article_link')) 

这确实newsave在同一时间进一步缩短这条线。如果您的文章模型中有任何验证,如果这些变体失败,则这两个变体可能不会保存到数据库。你可能想在这里检查这样的错误。

相关问题