RAILS:从Array填充Object

时间:2013-06-23 20:04:57

标签: ruby-on-rails arrays ruby-on-rails-3.2

使用任意SQL语句

从查询中填充数组
@myarray = myObject.find_by_sql(sql)

SQL的设计方式是每个myarray项与myObject模型具有相同的字段,例如

\#{myObject value: 100, day: 2013-06-15}

理想情况下,我想拥有myObjects数组

  1. 填充数据中的数据;
  2. 可访问html;
  3. 未保存到数据库中。
  4. 是否可能?

1 个答案:

答案 0 :(得分:0)

来自ActiveRecord::Querying#find_by_sql的文档:

  

对您的数据库执行自定义SQL查询并返回所有结果。结果将作为一个数组返回,并将请求的列封装为您调用此方法的模型的属性。如果调用Product.find_by_sql,则结果将在具有您在SQL查询中指定的属性的Product对象中返回。

所以我真的不明白你的问题。 AR将尝试将从查询返回的字段映射到对象字段 如果将其指定给对象变量,则可在视图中访问它 除非您执行执行保存的方法之一,否则记录永远不会保存。

编辑:

请记住,除非您返回id列,否则AR将无法将结果集映射到记录。