Dav*_*ley 0 ruby activerecord rails-activerecord ruby-on-rails-5
我正在尝试创建一个超级通用类,当从它继承时,我可以调用通用 Sidekiq 工作器。
这个想法是让我的所有服务都可以正常或异步调用。问题是我想将对象传递给服务,但我只能将指针传递给工作人员。
因此,如果我的服务需要一个User和一个,String我目前将拥有:
*args = [#<User:y6t4ert56uu6>, "I'm a string"]
Run Code Online (Sandbox Code Playgroud)
为此,我需要制作这个数组:
[{activerecord: true, class: "User", value: user_id}, {activerecord: false, class: "String", value: "I'm a string"}]
Run Code Online (Sandbox Code Playgroud)
一旦我知道User是一个 activerecord 对象,我就可以安全地假设有一个id(假设我只是传递保存的对象)。否则我只会输出变量的值。
完美解决方案的一个想法是:(没有重要的代码)
user = User.first
str = "Hello"
is_activerecord(user) # returns true
is_activerecord(str) # returns false
Run Code Online (Sandbox Code Playgroud)
任何人都可以提出有关如何做到这一点的想法吗?
谢谢
对象.is_a?救援:
user = User.first
str = "Hello"
user.is_a?(ActiveRecord::Base) # true
str.is_a?(ActiveRecord::Base) # false
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
360 次 |
| 最近记录: |