相关疑难解决方法(0)

如何在Ruby中编组lambda(Proc)?

Joe Van Dyk 询问了Ruby邮件列表:

嗨,

在Ruby中,我猜你不能编组一个lambda/proc对象,对吗?在lisp或其他语言中这可能吗?

我想做什么:

l = lamda { ... }
Bj.submit "/path/to/ruby/program", :stdin => Marshal.dump(l)
Run Code Online (Sandbox Code Playgroud)

所以,我正在向BackgroundJob发送一个lambda对象,该对象包含要执行的操作的上下文/代码.但是,猜测这是不可能的.我最终编组了一个普通的ruby对象,其中包含程序运行后要执行的操作的说明.

ruby lambda serialization proc-object

21
推荐指数
2
解决办法
7313
查看次数

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

假设我有一个User < ActiveRecord::Base.现在,假设我想创建一个用户实例,验证它并将其存储在会话中,如果我无法保存它.

user = User.new
...
session[:new_user] = user unless user.save
...
Run Code Online (Sandbox Code Playgroud)

使用ActiveRecord会话可能最终no marshal_dump is defined for class Proc会来自Marshal.dump.

现在,解决此类序列化错误(找到"无效" Proc对象)的最佳方法是什么(通常不一定是AR)?

ruby serialization ruby-on-rails

3
推荐指数
1
解决办法
6002
查看次数

标签 统计

ruby ×2

serialization ×2

lambda ×1

proc-object ×1

ruby-on-rails ×1