Ruby on rails Rails模型的通用排序方法
我希望保持代码整洁,并遵循rails开发人员的最佳实践,这就引出了这个问题。比如说,我的模型有以下方法类型Ruby on rails Rails模型的通用排序方法,ruby-on-rails,methods,model,Ruby On Rails,Methods,Model,我希望保持代码整洁,并遵循rails开发人员的最佳实践,这就引出了这个问题。比如说,我的模型有以下方法类型 模范协会 验证 范围 回调 其他自定义方法 上述内容通常以什么顺序出现?请随意添加我可能遗漏的任何其他内容 奖励:您应该将变量与其关联的方法类型一起分组,还是应该将所有变量分组在模型的开头?假设我有一个变量来存储正则表达式。最好将其保持在接近验证的位置,还是保持在模型顶部,类似于您将保持globals的位置 例如: VALID_EMAIL_REGEX = /\A[\w+\-.]+@[a
- 模范协会
- 验证
- 范围
- 回调
- 其他自定义方法
VALID_EMAIL_REGEX = /\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i
validates :email, uniqueness: true, length: {within: 5..50}, format: { with: VALID_EMAIL_REGEX }
你遵循什么惯例并不重要,只要你保持它的一致性,让其他开发人员更容易理解 通常遵循的顺序是
1. associations
2. scopes
3. class methods
4. validations
5. callbacks
6. instance methods
有些人还将类方法移到回调下面。再说一遍,这取决于你。但要保持一致我遵循以下顺序:
我一开始就把所有变量放在一起,你可以把它们放在任何地方,但我认为把它们放在一起是有利的。不确定这是否是最佳做法,但你所描述的与我所做的差不多。如果你移动你的电子邮件正则表达式直到验证之后,我想你会发现它不起作用。是的,我的错。相关阅读:感谢@Bradwerth的链接这不仅仅是基于观点的,还有一些错误是因为排序问题而产生的,问题是关联定义回调,就像accept\u nested\u attributes那样,回调的顺序取决于定义。有关更多信息,请参阅。如果您想更新答案,请注意这是当前样式指南(由rubocop编写)中的顺序。