ruby-on-rails - rails : elegantly reduce duplication when using json to create objects

标签 ruby-on-rails json

我在 json 中获取数据以在我的 webapp 中创建,就像这样

response.each do |article|
    title = article['title']
    url = article['url']
    content = article['content']
    image_url = article['image_url']
    source = article['source']
    created_at = article['created_at']
    twitter_share = article['twitter_share']
    facebook_share = article['facebook_share']
    pocket_share = article['pocket_share']
    article = Article.new(title: title, url: url, image_url: image_url, content: content, created_at: created_at, source: source,
                    twitter_share: twitter_share, facebook_share: facebook_share, pocket_share: pocket_share)
    if article.save
      puts article.title
    end
  end

如你所见,有很多重复,我该如何优雅地减少这些重复?

最佳答案

文章似乎是一个散列,所以你可以简单地做

response.each do |article|
  article = Article.new(article)
  if article.save
    puts article.title
  end
end

如果文章包含其他属性,您可以删除它们:

allowed = ['title', 'url', 'source']
response.each do |article|
  article = Article.new(article.slice(*allowed))
  if article.save
    puts article.title
  end
end

关于ruby-on-rails - rails : elegantly reduce duplication when using json to create objects,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31294455/

相关文章:

javascript - rails 4 : How to add external javascript file from other site in a specific page

ruby-on-rails - Rails 和 MSSQL 2008 - 我们会遇到障碍吗?

ruby-on-rails - 使用 except 删除哈希键

java - 当我尝试解析 JSON 字符串时收到意外的内部错误

json - 如何在 JSONPath 表达式中使用 @odata.count 属性?

ruby-on-rails - Ruby on Rails : How to find all items with a hash that contain a specific value

javascript - 如果对象为空,则在 View 中有条件地显示元素

jquery - JSON 对象未定义

java - 无法解析获取无效数组范围 : 5 to 5 的响应

jquery $.post 第二个参数。 - json 还是查询字符串?