我在 SQL 数据库方面没有经验。我刚开始使用 ActiveRecord,我发现自己在粘贴 ActiveRecord 查询语句,因为我不知道何时使用 .find()、.where()、连接等之间的区别。有很多方法可以做一个查询,我很困惑. 我只是想知道退后一步并先学习 SQL 还是尝试跟随是个好主意?另外,学习 SQL 的最佳方法是什么?
谢谢
我在 SQL 数据库方面没有经验。我刚开始使用 ActiveRecord,我发现自己在粘贴 ActiveRecord 查询语句,因为我不知道何时使用 .find()、.where()、连接等之间的区别。有很多方法可以做一个查询,我很困惑. 我只是想知道退后一步并先学习 SQL 还是尝试跟随是个好主意?另外,学习 SQL 的最佳方法是什么?
谢谢
是的!您绝对应该了解 SQL 才能有效地使用 ActiveRecord。
AR 通过将您从编写原始 SQL 的乏味中抽象出来,从而提高了生产力,但是了解它在做什么将提高您对它的使用,以及您编写有效代码的能力。
您可以从在工作时查看日志开始tail -f log/development.log
,它会向您显示 AR 生成的语句。这将帮助您获得一个参考框架,以帮助您了解 AR 对给定呼叫所做的工作。
AR 不会取代 SQL - 它通过让您在更高级别使用它来增强它。了解幕后发生的事情只会对您有所帮助。
我肯定会建议先学习 SQL,从长远来看,它会帮助你很多。Active Record 实际上只是数据库的对象-关系映射,它有助于使 SQL 的编写更简洁、更清晰、更容易。话虽如此,我不认为它可以替代了解 SQL,更不用说学习基础知识很容易。我建议同时查看有关 SQL 的文档和活动记录。
SQL:http ://www.w3schools.com/sql/default.asp
活动记录: http: //guides.rubyonrails.org/active_record_querying.html和http://api.rubyonrails.org/classes/ActiveRecord/Base.html