Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 接受SQL并简单映射对象和关系的ORM?_Ruby On Rails_Orm_Activerecord - Fatal编程技术网

Ruby on rails 接受SQL并简单映射对象和关系的ORM?

Ruby on rails 接受SQL并简单映射对象和关系的ORM?,ruby-on-rails,orm,activerecord,Ruby On Rails,Orm,Activerecord,我发现ActiveRecord的使用会影响我设计数据库模式的方式(尽管我希望它不会)。我在考虑获取数据的低效性以及如何减少查询的总数。find:include选项只能帮助您实现这一目标。我是从编写存储过程开始的,它可以在一次调用中获取(特定屏幕或活动)所需的一切 我真的不需要API来编写SQL。我完全满足于以非Ruby的方式编写T-SQL。我唯一想要的是将查询结果映射到实例化的模型及其关联。有没有采用这种方法的orm?可以处理多个选择(存储过程?)甚至可能使用临时表的程序 编辑: 我重新措辞并澄

我发现ActiveRecord的使用会影响我设计数据库模式的方式(尽管我希望它不会)。我在考虑获取数据的低效性以及如何减少查询的总数。find:include选项只能帮助您实现这一目标。我是从编写存储过程开始的,它可以在一次调用中获取(特定屏幕或活动)所需的一切

我真的不需要API来编写SQL。我完全满足于以非Ruby的方式编写T-SQL。我唯一想要的是将查询结果映射到实例化的模型及其关联。有没有采用这种方法的orm?可以处理多个选择(存储过程?)甚至可能使用临时表的程序

编辑:


我重新措辞并澄清了我真正想要的是什么。

我发现需要一个相当复杂的查询大约占项目的20%,因此使用ORM非常有帮助

当这20%上升时,我发现自己在做一些与您要求的类似的事情,专门使用SQL。ActiveRecord和DataMapper有一个find_by_sql方法,可以帮助您更多,但不会实例化所有模型(如果我没有弄错的话,至少在ActiveRecord上是这样)

你试过使用吗?这也是一个ORM,但让我们让您有一个更简单的方法和更大的灵活性


除此之外,我想不出一个更专注于ORMs领域的解决方案。请记住,ORM试图抽象查询接口以简化。如果您对使用原始SQL感到满意,那么只使用SQL facade接口可能会更有效率。

我发现需要相当复杂的查询大约占项目的20%,因此使用ORM非常有帮助

当这20%上升时,我发现自己在做一些与您要求的类似的事情,专门使用SQL。ActiveRecord和DataMapper有一个find_by_sql方法,可以帮助您更多,但不会实例化所有模型(如果我没有弄错的话,至少在ActiveRecord上是这样)

你试过使用吗?这也是一个ORM,但让我们让您有一个更简单的方法和更大的灵活性


除此之外,我想不出一个更专注于ORMs领域的解决方案。请记住,ORM试图抽象查询接口以简化。如果您对使用原始SQL感到满意,那么使用SQL facade接口可能会更有效率。

查看ActiveRecord按SQL()查找方法


查看ActiveRecord的find\u by\u sql()方法


我看了续集。我不确定的是如何在ActiveRecord或Sequel中手动映射关联。也就是说,如果我只是尝试插入一个子项(parent.children),我会查看Sequel。我不确定的是如何手动映射ActiveRecord或Sequel中的关联。也就是说,如果我只是尝试插入一个子项(parent.children我知道find_by_sql,但是谢谢。我打开了一个新问题。请参阅上面的链接。我确实知道find_by_sql,但是谢谢。我打开了一个新问题。请参阅上面的链接。