格式化ActiveRecord结果以进行解析?

时间:2018-07-03 14:13:13

标签: ruby activerecord dart

我有一个包含条目的数据库,可以使用ActiveRecord提取这些条目。当前,使用类似post.to_yaml的方法可以产生:

 !ruby/object:Post
  concise_attributes:
  - !ruby/object:ActiveModel::Attribute::FromDatabase
    name: id
    value_before_type_cast: 1
  - !ruby/object:ActiveModel::Attribute::FromDatabase
    name: user
    value_before_type_cast: efy5qC5YmJNml23JowOUrlmfN0D2
  - !ruby/object:ActiveModel::Attribute::FromDatabase
    name: content
    value_before_type_cast: bol4
  - !ruby/object:ActiveModel::Attribute::FromDatabase
    name: location
    value_before_type_cast: '123'
  - !ruby/object:ActiveModel::Attribute::FromDatabase
    name: timestamp
    value_before_type_cast: '12:00'
  new_record: false

我要返回的确切集合如下:record = Post.order(:timestamp).offset(15 * 0).first(15)

此返回的结果包含几个字段,这些字段将返回到Flutter应用程序。数据将填充一个具有诸如contentdatelocation之类的字段的小部件,所有这些字段均由上述查询返回。

我可以使用Dart库解析YAML,但是是否有更好的方法来压缩返回的值,以便仅显示必要的字段?

1 个答案:

答案 0 :(得分:1)

根据共享的描述,似乎您已从数据库中获取数据,现在只需要选择需要显示的特定字段即可。

根据当前情况,您可以使用类似以下内容的

post.as_json(only: [:content, :name, :location])

否则,您可以通过使用select语句从数据库中选择特定属性来修改正在使用的查询。

Post.select(:name, :content, :location)

希望有帮助!