@nodes = Node.select(......................
render json: @nodes
然后我想在@nodes里加一个字段 比如:
@nodes.video = "aaa"
该怎么写???
反正就是这个意思,不知道有没有表达清楚
我知道在 ruby 里 @nodes 是作为 ActiveRecord 的对象的
还是应该先把对象转换成散列,再赋值那?
Dynamically defining a method on a single instance in Ruby
https://honnef.co/posts/2009/10/ruby-dynamic-method/
def @nodes.video= value
@video = value
end
video 是在其他表里的
就是在一个已生成的对象中添加原来没有一个字段
应该说类似于 JavaScript 的原型那种(不知道这样说有没有问题)
你直接搞个虚拟属性好了 attribute :video, :string 或者你也可以先 hash = nodes.serializable_hash 得到散列表,然后 hash[:video] = ‘’来搞
我在 Node 类里加上 attribute :video, :string 提示没有 video 对象
nodes.serializable_hash 提示没有 serializable_hash 对象
我懂了,你那个 @nodes
返回的是多个 Node
数据,那么你是想给 @nodes
加 video
做法就有问题了,还是你想给每一个 Node
加 video
呢?
Node 里,在 attribute :video, :string
之前,加上 attr_accessor :video
先定义这个属性,然后声明他为 ActiveRecord 的属性,即可,赋值时候要遍历对象进行赋值