Tag: 序列化

有序列化的领域的工厂女孩

我和工厂女孩有这个问题,它给了我一个undefined method ‘each’ for #错误,来自工厂的序列化字段。 在ActiveRecord中,它运行每个没有问题,因为返回的对象是一个数组。 我的问题是:如何在工厂中格式化序列化对象? 活动记录返回的方式? 或者它实际存储在数据库中的方式? (即序列化或不序列?)rspec会在保存和检索该活动记录时执行相同的序列化魔术吗? 这是我正在做的简化版本: Tvdb.rb–模型 class Tvdb ‘episodes_’ + info.id.to_s, :cache=>request) return request end end 然后在我的Series.rb模型中,我可以这样做: class Series < ActiveRecord::Base def episodes episodes = Tvdb.episodes(self.tvdb_id) episodes.each do |episode| puts episode.name end end end Tvdb.rb – 工厂 FactoryGirl.define do factory :series1_episodes, :class=>Tvdb do term ‘episodes_79488’ cache %q([#,# ) end […]

Rails按记录关联查询

我对Rails相对较新,并且想要了解更多我正在尝试构建一个简单的博客。 我正在进行的一个问题是标记。 我有一个Tag模型,我用它来创建和管理可以应用于post的标签。 我也有一个Post模型。 我需要能够将任何标签与post相关联,检索它们以获得输出,并能够通过特定标签过滤/查询post。 到目前为止,我已经在Post上创建了一个名为tags的列,它被分配了一个Tag ID数组,然后被序列化。 这非常适合检索,但我的理解是,尝试通过序列化列查询记录是一个很大的禁忌 。 正如上面的链接建议,我已经这样做以实现我的filter: Post.all.select { |post| post.tags.include? 3 } 但我知道这是收集我的所有post,然后使用数组方法select过滤它们。 我的问题是:如何将任意数量的Tag记录与Post记录关联,并按给定标记查询/过滤post记录?

强制活动模型序列化程序返回关联

我有一个Active Model Serializer ,它具有以下function: class API::DashboardSerializer < ActiveModel::Serializer attributes :id, :name, :special def special x = object.check_ins.first prev = x.prev_ci_with_weigh_in end end special返回CheckIn类的记录,我希望它为该记录使用CheckInSerailizer 。 如何强制它使用special的CheckInSerializer ?

Ruby on Rails 3 – 序列化数组不匹配的类障碍

嘿那里,我对Rails 3.0.5和Ruby 1.9.2中的序列化不匹配问题感到困惑。 我使用Array的子​​类为数据库播种,然后尝试保存到ActiveRecord对象。 谁能帮帮我吗? 我最初尝试序列化为Graph,但将其缩减为Array以避免自定义类的错误。 我很难过,因为这对我来说没有直觉意义。 非常感谢您的帮助! class Graph < Array .. class Settings < ActiveRecord::Base serialize :graphs, Array .. 在seeds.rb中最后一行 – 例如之后没有任何事情发生。 为了调试目的,只需节省很多: sh_1g = sh_1g.to_a d.company.settings.add_graph(sh_1g.to_a) d.company.settings.save! d.company.save! d.save! if sh_1g == d.company.settings.graphs[0] puts “the added graph matches the first graph in the graphs array” end puts “added ” + sh_1g.inspect + […]

rails:在表单中编辑序列化数据

我有一个模型有一个序列化哈希的参数。 我希望能够使用内置的railsfunction在表单中编辑哈希。 它几乎正常工作。 如果填写表格并提交,则参数序列化正确,并且在控制器中,模型使用预期值构建。 它崩溃的地方是我希望表单显示现有模型:表单字段中没有显示任何值。 我的模型看起来像: class Search < ActiveRecord::Base serialize :params end forms: 10, :placeholder => “Min” %> 10, :placeholder => “Max” %> … 并在控制器的创建方法: @search = Search.new(params[:search]) @search.params ||= Hash.new logger.info(“search = #{@search.inspect}”) 在日志中: search = #”1200″, “max_square_footage”=>”1500”}, created_at: nil, updated_at: nil> 所以你可以看到值被POST。 在我看来,在表单上方,我添加了这一行,看看我是否至少可以访问这些值: 我可以。 因此,如果我可以访问我的视图中的值,并且表单成功将数据POST到我的控制器,为什么我的表单不能显示数据?

在Hash中保存错误排序后的activerecord-postgres-hstore

使用Hstore存储为哈希表,在保存后在哈希中输入错误 class Service 1, “zz” => 2, “cc” => 3, “d” => 4 } #=> { “aaa” => 1, “zz” => 2, “cc” => 3, “d” => 4 } service.save reload! service = Service.find(:id) service.properties #=> { “d” => “4”, “cc” => “3”, “zz” => 2, “aaa” => 1 } Bug::: wrong ordering after save […]

如何解决Marshal.dump“没有为类Proc定义marshal_dump”错误

假设我有一个User < ActiveRecord::Base 。 现在,假设我想创建一个用户实例,validation它并将其存储在会话中,如果我无法保存它。 user = User.new … session[:new_user] = user unless user.save … 使用ActiveRecord会话可能最终no marshal_dump is defined for class Proc来自Marshal.dump no marshal_dump is defined for class Proc 。 现在,解决这种序列化错误的最佳方法是什么(找到对象的“无效” Proc对象)(通常不一定是AR)?

Rails中的ActiveModel :: Serializer – JSON结果中忽略的序列化方法

我正在使用active_model_serializers为我的Rails模型创建JSON。 串行 class OptionSerializer < ActiveModel::Serializer self.root = false attributes :id def test_id object.id end end 但是,to_json选项似乎忽略了OptionSerializer中添加的方法: OptionSerializer.new(Option.find(13)).to_json.html_safe 预期产出 { “id”: 13, “test_id”: 13 } 实际产出 { “id”: 13 } 我已经查看了这篇SOpost ,但这是我能找到的唯一一个有人遇到这个问题的post。 我正在运行Ruby 1.9.3和Rails 4.0.0。 感谢您的时间。 非常感谢任何支持,意见或建议。

在表单中编辑序列化哈希?

我正在序列化存储在表中的settings字段中的哈希,并希望能够在表单字段中编辑该哈希。 class Template < ActiveRecord::Base serialize :settings end 但我只是做然后文本区域只显示序列化数据而不是哈希值。 如何在文本区域中显示哈希值?

ActiveRecord序列化将nil发送到当前属性的自定义序列化程序

我有以下自定义序列化程序: class ReportCardDataSerializer def self.dump(hash) hash.to_json end def self.load(json) # json.class == NilClass, why???? hash = (json || {}).with_indifferent_access end end 以下类具有序列化data属性,数据库列设置为NOT NULL。 class ReportCardGroup < ActiveRecord::Base serialize :data, ReportCardDataSerializer # data is PostgreSQL jsonb column end ReportCardDataSerializer dump方法按预期工作。 但是在尝试load ReportCardDataSerializer时,即使数据库列不是nil, load方法也会被发送为nil。 为什么会这样?