【问题标题】:Rails : create an openstruct from json sent via ajaxRails:从通过 ajax 发送的 json 创建一个 openstruct
【发布时间】:2012-02-02 10:33:00
【问题描述】:

我有这个 json 对象(我真的不知道里面是什么),我想将它存储到具有 openstruct 属性的 rails 模型中

例如,使用 jquery 我将这个 json 发送到好的 url:

    Data = A_JSON_OBJECT_LIKE_CSV;
    myJSONData =  {"OpenStructObject":{"content":' + Data + '}}
    $.ajax({
      type: "POST",
      url: 'http://localhost:3000/surveys/',
      dataType: 'json',
      data: myJSONData,
      success: alert('wow : success !')
    });                

那么这个Survey模型应该怎么写呢? 也许是这样的:

class Survey < ActiveRecord::Base
  serialize :content, OpenStruct

  def initialize(idunno)
    @content = watever;
  end
end

我真的不知道,除了一定可以做到!

【问题讨论】:

    标签: ruby-on-rails json data-structures csv


    【解决方案1】:

    为什么需要将它转换为 OpenStruct 并在 db.xml 中保存为 yaml。而是将 JSON 转换为以 yaml 形式保存的哈希值,但没有打开结构的开销。

    =============================已更新[开始]

    您的代码中已经有了解决方案。看看这个

    class Survey < ActiveRecord::Base
      serialize :content, Hash
    
    end
    

    在这里您正在序列化内容。正确的!!因此它会在保存之前自动将分配的哈希转换为 yaml。所以这里有一些任务

    survey = Survey.new({:content => {:first => "any hash"}})
    survey.save!
    

    现在当你再次访问它时

    survey.content
    #=> {:first => "any hash"}
    

    就这么简单。您不必担心 yaml 转换和返回,Rails 会处理它。

    =============================已更新[END]

    【讨论】:

    • 是的,你说得对,但是如何查询我的 yaml 文件,例如如何使其属于一个配置文件?
    猜你喜欢
    • 2015-11-06
    • 1970-01-01
    • 1970-01-01
    • 2012-02-17
    • 1970-01-01
    • 1970-01-01
    • 2013-01-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多