我真的很喜欢rails,但我很想知道。
在执行查询时访问rails中的模型列名称的最佳做法是什么?
就像我想在DESCENDING顺序中按名为“title”的列执行订单。我该怎么做(最佳实践)?
MyModel.order(:title.to_s.concat " DESC").all
MyModel.order("title DESC").all
或其他什么?
根据我使用硬编码字符串的经验总是证明在这方面的错误方法主要是因为代码变得不可能重构。
在我的IDE(我正在使用RubyMine)中,它为colum符号显示了一个很好的代码completition,所以我猜这样会更容易跟踪使用吗?
感谢。
答案 0 :(得分:1)
在我看来,MyModel.order("title DESC").all
是更好的选择。其他选择的可读性和复杂性都很糟糕。虽然性能可能不是一个考虑因素,但另一个选择在本节中也很糟糕。
除此之外,您永远不应该通过IDE intellisense功能编写代码 - 您的代码应该可以在所有IDE中导航和读取。我使用Vim,它完成字符串就像完成符号一样好,所以这里没有区别。
编辑:
如果您的订单是ASC,那么您可以使用MyModel.order(:title).all
,这肯定比MyModel.order("title").all
更好