Tag: 类加载器

Rails / delayed_job – 想要加载最新版本的作业类

我正在使用Rails中的delayed_job插件进行后台处理,而我在Rails中遇到的“敏捷开发”中遇到了一个小问题… 通常在rails中如果我遇到错误/想要添加一些新function – 我只需添加一些代码并刷新页面并运行新代码。 使用delayed_job,似乎没有重新加载作业类…如果作业失败,我去修复错误并再次激活作业,旧代码再次运行。 有没有办法让delayed_job在调用之前加载最新版本的作业类? 万一这与它有什么关系 – 我知道delayed_job在声明作业/运行作业的方式上有几个不同的选项: 我的作业类位于Rails的lib目录中,声明如下: class FooJob < Struct.new(:foo_id) 我从控制器调用这样的工作: Delayed::Job.enqueue(FooJob.new(params[:id]))

Rails不会在反序列化YAML / Marshal对象时加载类

Rails:3.0.3 Ruby:1.9.2 尝试使用YAML.load或Marshal.load反序列化一个非常简单的对象会产生一个损坏的对象,因为在反序列化过程中不需要属于的类。 例: # app/models/my_model.rb class MyModel attr_accessor :id end # test/unit/serializing_test.rb require ‘test_helper’ class SerializingTest < Test::Unit::TestCase def test_yaml_serialize_structure my_model = MyModel.new my_model.id = 'my model' File.open( "#{Rails.root}/tmp/object.yml" , 'w' ) do |f| YAML::dump(my_model, f) end end def test_yaml_deserialize_structure object = YAML.load_file "#{Rails.root}/tmp/object.yml" assert( object.instance_of? MyModel ) assert_equal( 'my model', object.id ) end […]