Rails:使远程代理持久保留活动记录

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Rails:使远程代理持久保留活动记录相关的知识,希望对你有一定的参考价值。

课程代理知道远程系统上课程的ID,在访问时获取该信息。示例代码:

class Course < BasicObject
  attr_accessor :course_id, :course_info
[..]
def method_missing(*a, &b)
  if course_info.nil?
    load_course_info
  end
  course_info.send(*a, &b)
end
[...]

def load_course_info
 # this will fetch the course information from a remote server
 # using the course_id
end

我的问题:我想使用活动记录来创建代理的course_id坚持(不是课程信息),以便代理记住在以后的阶段如何再次获取信息。

课程从BasicObject继承,所以我不能这样做

Course < ActiveRecord::Base

我想ActiveRecord :: Base有太多方法无法用作代理。

解决方案是什么?

答案

在以下位置找到了答案:https://solnic.codes/2011/08/01/making-activerecord-models-thin/

Piotr说(如果我理解正确的话),通过直接从活动记录中继承来使模型持久化会污染模型/域对象的职责。

他展示了一种解决此问题的方法,这比我所关注的问题更通用。

以上是关于Rails:使远程代理持久保留活动记录的主要内容,如果未能解决你的问题,请参考以下文章

“不要保留活动” - 当应用程序恢复时,片段仅可见一秒钟

保留活动中的片段状态

在方向更改时保留列表片段中的列表

如何使控制台中的视图缓存片段过期?

使后退按钮从活动返回到Android中的片段

在Rails 6中默认清除blobs。