【问题标题】:Best practice using map to create a new record inside my database with Ruby on Rails 5使用地图在我的数据库中使用 Ruby on Rails 5 创建新记录的最佳实践
【发布时间】:2017-12-15 14:18:08
【问题描述】:

我正在使用第三方 API 以哈希格式收集数据。我要做的是获取哈希数据并将其存储到我的数据库中。

假设我有一个名为 cmets 的哈希实例化。在 cmets 内部,哈希返回以下内容

{"message"=>"Welcome to New York", "from"=>{"name"=>"John Doe"}

我想获取这个哈希值并将消息存储在一个名为 Comment 的表中。

我想知道实现这一点的最佳 Rails 实践是什么。

【问题讨论】:

  • 您的表的架构是什么样的?

标签: ruby-on-rails ruby hashmap


【解决方案1】:

在 Rails 中,您只需为您认为合适的数据创建模型(带有相应的数据库表)。这取决于您的域,即您实际想要存储的内容以及您想要实现的目标。

在您的情况下,您最终可能会得到两个数据库表:

  • 表 PERSON,列 ID、NAME、...
  • 包含 ID、PERSON_ID、TEXT 等列的 MESSAGE 表

因此,您可以简单地使用 Rails 生成器来非常简单地创建所有这些东西。查看http://guides.rubyonrails.org/getting_started.html和该页面上的“指南索引”以获取更多信息,这些都应该在第一基本章节中详细解释。

【讨论】:

    【解决方案2】:

    您可以创建一个 Comment 模型并使用 ActiveRecord 将其存储在您的数据库中。 在文件夹 app/model/ 下创建一个文件 model.rb 里面写类似

    class Message < ApplicationRecord
    end
    

    您需要配置 rails 以启用与数据库的通信, 还有一些其他的事情。 您可以在 ActiveRecord here 上找到文档。

    一切都设置好后,您可以在控制器中编写类似的内容:

    my_hash = {"message"=>"Welcome to New York", "from"=>{"name"=>"John Doe"}
    message = message.new(my_hash['message'])
    message.save
    

    【讨论】:

    • 如果你能解释为什么你投了反对票,我很乐意改进我的答案:-)
    猜你喜欢
    • 2016-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-17
    相关资源
    最近更新 更多