检索记录并将它们作为 Ruby 个对象进行操作
Retrieving records and manipulating them as Ruby objects
Sequel 和 SQL 总体上是新手,请多多包涵。我正在使用 Sequel 的 many_through_many
插件,我通过 groups_tasks
检索与特定 tasks
间接关联的 resources
加入 table 和 groups_resources
加入 table。然后,当我在 Task
数据集上查询 task.resource
时,我在 Ruby 中获得资源对象,如下所示:
>>[#<Resource @values={:id=>2, :group_id=>nil, :display_name=>"some_name"}>, #<Resource @values={:id=>3, :group_id=>nil, :display_name=>"some_other_name"}>]
现在,我希望能够向这些资源对象添加一个新的实例变量 schedule
,并在 Ruby 中对其进行处理。但是,每次我为每个任务查询 task.resources
时,Sequel 每次都会将资源对象作为 不同的 资源对象带入 ruby(这使得感觉),尽管在数据库中是相同的记录:
>>
"T3"
#<Resource:0x007fd4ca0c6fd8>
#<Resource:0x007fd4ca0c6920>
#<Resource:0x007fd4ca0c60d8>
#<Resource:0x007fd4ca0c57a0>
"T1"
#<Resource:0x007fd4ca0a4c08>
#<Resource:0x007fd4ca097f58>
#<Resource:0x007fd4ca097b48>
"T2"
#<Resource:0x007fd4ca085ba0>
#<Resource:0x007fd4ca0850d8>
我本来想在 class Resource
中放一个 setter 然后做 resource.schedule = Schedule.new
,但是因为它们都是不同的对象,每个资源都会有很多不同的时间表。在客户端操作这些资源对象的最直接方法是什么,但要维护我从服务器查询的任务关联?
如果我对你的问题的理解正确,你想要检索 Resource
个对象,然后操作一些名为 schedule
的属性。我对 Sequel 不是很熟悉,但查看文档它似乎与 ActiveRecord 类似。
设置您的实例变量(我想象在资源 class 上使用类似 attr_accessor :schedule
的东西)。
将记录存储在变量中,您每次都将使用相同的实例,而不是新实例 Sequel returns.
Sequel 和 SQL 总体上是新手,请多多包涵。我正在使用 Sequel 的 many_through_many
插件,我通过 groups_tasks
检索与特定 tasks
间接关联的 resources
加入 table 和 groups_resources
加入 table。然后,当我在 Task
数据集上查询 task.resource
时,我在 Ruby 中获得资源对象,如下所示:
>>[#<Resource @values={:id=>2, :group_id=>nil, :display_name=>"some_name"}>, #<Resource @values={:id=>3, :group_id=>nil, :display_name=>"some_other_name"}>]
现在,我希望能够向这些资源对象添加一个新的实例变量 schedule
,并在 Ruby 中对其进行处理。但是,每次我为每个任务查询 task.resources
时,Sequel 每次都会将资源对象作为 不同的 资源对象带入 ruby(这使得感觉),尽管在数据库中是相同的记录:
>>
"T3"
#<Resource:0x007fd4ca0c6fd8>
#<Resource:0x007fd4ca0c6920>
#<Resource:0x007fd4ca0c60d8>
#<Resource:0x007fd4ca0c57a0>
"T1"
#<Resource:0x007fd4ca0a4c08>
#<Resource:0x007fd4ca097f58>
#<Resource:0x007fd4ca097b48>
"T2"
#<Resource:0x007fd4ca085ba0>
#<Resource:0x007fd4ca0850d8>
我本来想在 class Resource
中放一个 setter 然后做 resource.schedule = Schedule.new
,但是因为它们都是不同的对象,每个资源都会有很多不同的时间表。在客户端操作这些资源对象的最直接方法是什么,但要维护我从服务器查询的任务关联?
如果我对你的问题的理解正确,你想要检索 Resource
个对象,然后操作一些名为 schedule
的属性。我对 Sequel 不是很熟悉,但查看文档它似乎与 ActiveRecord 类似。
设置您的实例变量(我想象在资源 class 上使用类似
attr_accessor :schedule
的东西)。将记录存储在变量中,您每次都将使用相同的实例,而不是新实例 Sequel returns.