Tag: 序列化

如何在textarea格式中编辑序列化哈希列

我在公司模型中有一个序列化列: class Company < ActiveRecord::Base serialize :names 理想情况下,我希望它在数据库中存储这样的不同名称: — short: bestbuy long: bestbuy ltd. 目前在我的公司#edit页面中,我有一个文本区域: 如果我在数据库中有YAML,它将在浏览器中显示为: {“short”=>”bestbuy”, “long”=>”bestbuy ltd.”} 但是,当我提交它时,它在数据库中成为: — ! ‘{“short”=>”bestbuy”, “long”=>”bestbuy ltd.”}’ 题 我怎样才能使textarea显示YAML以供编辑器编辑? 如何使数据库保存正确的YAML,而不是YAML和ruby哈希的混搭? 更新 如果我像这样强制列类型为Hash : serialize :names, Hash 我尝试保存时会出错: Admin :: CompaniesController#update中的ActiveRecord :: SerializationTypeMismatch 属性应该是一个哈希,但是一个字符串

Rails 3:转义字符(\)出现在JSON字符串的一部分中

任何人都知道为什么我的一些json元素被反斜杠( \ )转义而其他人没有? {“first”:”John”,”last”:”Smith”,”dogs”:”[{\”name\”:\”Rex\”,\”breed\”:\”Lab\”},{\”name\”:\”Spot\”,\”breed\”:\”Dalmation\”},{\”name\”:\”Fido\”,\”breed\”:\”Terrier\”}]”} 理想情况下,我希望他们中没有人逃脱…… 这是通过在两个模型中重写as_json生成的。 人has_many狗。 #models/person.rb class Person first, :last => last, :dogs => dogs.to_json } end end #models/dog.rb class Dog name, :breed => breed } end end

如何序列化和反序列化邮件?

如何将邮件序列化以便存储以供进一步使用? 序列化的数据应该断开连接,并且自足以在应该传递该消息的单独机器上传送(不知道数据库或其他任何东西)。

Rails在参数中序列化整数属性,但不保存到模型实例中

所以我有以下模型,其中包含序列化的整数属性 耙文件: class CreateCompanyAssetStats < ActiveRecord::Migration def change create_table :company_asset_stats do |t| t.integer :companyID t.string :geo t.integer :assetType t.date :startTime t.date :endTime t.timestamps end end end 模型: serialize :companyID, Array serialize :assetType, Array serialize :geo, Array 在我看来,我有一个表单,我有一个多选下拉列表,将值存储到params中: Multi Select <option value=> 生成的参数格式如下:参数:{“utf8”=>“✓”,“authenticity_token”=>“2WFx3 / 3TyHsjobwRaLJYW2jt4JR5ucvtgyBK3IxKTqs =”,“company_asset_stats”=> {“startTime”=>“2013-07-31T00 :00-07:00“,”endTime“=>”2013-07-31T00:00-07:00“,”companyID“=> [”1864“]},”commit“=>”创建“} 最后我的创建控制器执行以下操作: def create @company_asset_stats = CompanyAssetStats.new(params[:company_asset_stats]) if […]

Rails:将值序列化为逗号分隔而不是YAML

我正在寻找一种存储序列化值的方法,例如。 列中的ID。 在声称这不是最佳设计之前:该列用于关联记录的ID,但仅在显示记录时使用 – 因此不会对列上的选择进行查询,并且不会在此列上进行连接无论是。 在Rails中,我可以使用以下命令序列化列: class Activity serialize :data end 这将列编码为YAML。 由于传统的缘故,因为我只存储只包含整数的一维数组,所以我发现它更适合将它存储为逗号分隔值。 我已经成功实现了这样的基本访问器: def data=(ids) ids = ids.join(“,”) if ids.is_a?(Array) write_attribute(:data, ids) end def data (read_attribute(:data) || “”).split(“,”) end 这很好用。 但是我想在这个属性中添加类似数组的方法: activity = Activity.first activity.data << 42 … 我该怎么办?

Rails 3序列化问题

我有一个适用于ror 2.3.x的应用程序。 我无法使用序列化升级到Rails 3。 代码看起来像这样 class PaymentTransaction < ActiveRecord::Base serialize :response end 响应应该包含ActiveMerchant :: Billing :: Response。 由于某种原因,使用rails 3将其保存为字符串。 => #<PaymentTransaction id: 11, order_id: nil, amount: nil, mode: nil, payment_profile_id: nil, response: "#”, created_at: “2010-11-07 04:06:03”, updated_at: “2010-11-07 04:24:58”, result: “pending”, payee: nil, login_id: nil, transaction_key: nil> 在任何其他关于升级的博客中,我都没有关于序列化的任何注释。 有什么想法吗?

用轨道3输出格式化的json

我使用rails 3.0.3 javascript自动完成需要这样的数据 { query:’Li’, suggestions:[‘Liberia’,’Libyan Arab Jamahiriya’,’Liechtenstein’,’Lithuania’], data:[‘LR’,’LY’,’LI’,’LT’] } 我的行动是 def autocomplete @query = params[:query] @customers = Customer.where(‘firstname like ?’, “%#{@query}%”) render :partial => “customers/autocomplete.json” end 我的观点是 { query:”, suggestions: , data: } 它返回 { query:’e’, suggestions: [“customer 1”, “customer 2”], data: [1, 3] } 它不起作用,因为建议/数据的数据应该在简单引用之间…… 我不能使用to_json方法,因为它将返回我的对象​​的所有内容。 有什么建议吗? 干杯

Rails as_json有条件

在我的应用程序中, :foos有很多:bars ,我将每个foo序列化为JSON,如下所示: @foo.as_json( except: [:created_at, :updated_at], include: { bars: { only: [:ip_addr, :active] } } ) 这给了我以下内容: { “id” => 2, “name” => “Hello World”, “bars” => [ { “ip_addr” => “192.123.12.32”, “active” => 0 }, { “ip_addr” => “192.123.12.33”, “active” => 1 } ] } 如您所见,我的序列化哈希包含一个非活动栏。 如何从哈希中排除非活动栏? 如果我能做到这一点会很棒: include: { bars: { only: […]

如何使用best_in_place gem更改序列化数据?

我有一个带有序列化数据的模型,我想使用best_in_place gem编辑这些数据。 使用best_in_place gem时,默认情况下这是不可能的。 如何才能做到这一点?

newbie:将序列化整数附加到数据库列中并将其检索回来

我如何在数据库列中存储序列化的整数(用户ID范围从1到9999)并将其检索回来? 在我的用户模型中,我邀请了列, User model serialize: invites invites = text field 现在我想做两件事: 在“邀请”列中附加序列化的user_id整数(从1到9999) 从User.invited列中检索所有用户ID(反序列化它?)