大致结构如下, 1,一个 post 有好多字段 fields,post 的每条记录的每个字段的值单独在 Items 表中存一条记录 2,每次新增一条记录时生成一个 uuid 作为行编号 row_id,然后对每个字段存入 items 表
class Post < ActiveRecord::Base
has_many :fields
end
class Field < ActiveRecord::Base
belongs_to :post
has_many :items
end
class Item < ActiveRecord::Base
belongs_to : field
attr_accessible :row_id, :field_id, :content
end
问题怎么取一条记录(或者所有记录) 比如知道 Post 实例@post,以及行号@row_id 一条记录的获取可以:
@post.fields.map{|f| Item.where(row_id: @row_id,field_id: f.id).first.content }
这样要循环执行 sql 查询,有什么优化方法?