ruby-on-rails - 使用序列化时如何构建哈希?

标签 ruby-on-rails ruby-on-rails-4 mechanize

使用序列化时如何构建哈希?

{
  amount => [{year => total_cost}],
  amount => [{year => total_cost}],
  amount => [{year => total_cost}]
}

最佳答案

试试这个代码。它混合 .map .each_with_object 获取您描述的哈希和数组组合:

namespace :data do
  task scrap: :environment do
    agent = Mechanize.new
    results = (3000..25000).step(1000).each_with_object({}) do |amount, h|

      year_costs = (1..5).step(1).map do |year|
          total_cost = agent.get("https://www.cashbuddy.se/api/loancost?amount=#{amount}&numberOfYears=#{year}").body
          {year => total_cost}
        end # => an array of hashes, as in your question.

      h[amount] = year_costs
    end

    Credit.create(credit_data: results)
  end
end

关于ruby-on-rails - 使用序列化时如何构建哈希?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28843622/

相关文章:

ruby - Heroku 不为 rails 4 预编译 Assets

jquery - Rails 应用页面源码

python - 如何使用 Python 自动填写在线表单中的文本区域?

html - Mechanize 不像浏览器那样处理 cookie

ruby-on-rails - 帮助程序中的 Rails Form block - 我如何包含 "Protect from forgery"

ruby-on-rails - RSpec 夹具未加载

ruby-on-rails - 在 Rails 应用程序上运行 ruby​​ 时出现问题

javascript - 你如何在 Rails 中改变背景?

ruby-on-rails - 脚手架测试失败,ActionController::InvalidAuthenticityToken

ruby-on-rails - 如何修复 Mechanize::ChunkedTerminationError?