2012-07-29 79 views
0

我真的很新,但我想知道。Ruby on Rails - 访问活动记录列的最佳做法是什么

在进行查询时,在rails中访问模型列名的最佳做法是什么?

就像我想要在DESCENDING命令中按“title”列进行排序。我将如何做(最佳实践)?

MyModel.order(:title.to_s.concat " DESC").all 

MyModel.order("title DESC").all 

还是别的什么?

从我的使用硬编码字符串的经验总是证明这样的事情是错误的方法,主要是因为代码变得不可能重构。

在我的IDE(我正在使用RubyMine)它显示了一个很好的代码完成的柱面符号,所以我猜测会更容易跟踪这种使用方式?

谢谢。

回答

1

在我看来MyModel.order("title DESC").all是更好的选择。其他选择的可读性和复杂性很差。虽然表现可能不是一个考虑因素,但其他选择在这一部分中也得分不佳。

除此之外,您不应该使用IDE智能感知功能编写代码 - 您的代码应该在所有IDE中可导航并可读。我使用Vim,它完成了字符串,因为它完成了符号,所以在这里没有任何区别。

编辑:

如果您的订单是ASC那么你可以使用MyModel.order(:title).all这肯定比MyModel.order("title").all

+0

我跟你说“标题DESC”的做法是更好地在这里完全同意更好,但我真的不像他们一样。我正在寻找不同的东西。在那儿?还是应该“标题DESC”应该足够? – DArkO 2012-07-29 07:38:23

+1

我认为在这里“title DESC”就足够了。如果您想通过ASC订单订购,我编辑了我的答案和替代方案。 – 2012-07-29 07:45:39

相关问题