首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Rails的良好实践

Rails的良好实践
EN

Stack Overflow用户
提问于 2011-01-24 23:58:08
回答 2查看 2.7K关注 0票数 15

我正在寻找人们在使用Rails时的良好*实践示例。

我有几个这样的:

  • before_filter调用位于控制器类名声明之下,没有其他地方。名称空间的
  • Base控制器名为BaseController,而不是ApplicationController。只有一个ApplicationController.
  • attr_*方法在它们各自的classes.
  • Model回调的顶部定义为attr_*方法,或者在model.
  • Validations的顶部定义在模型的顶部,自定义验证方法被定义为文件底部的private方法。

现在,我并不是在寻找Ruby的良好实践,而是寻找更多的Rails中的优秀实践。上面列出的只是一个例子,而不是福音。

*我不想使用“最佳实践”这个词,因为最好的意思是终极的,而且在任何情况下,人们都可能不同意。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-01-25 05:15:16

我发现一个非常一致的做法是,当括号合适的时候。DSL类宏(如验证和关联)没有它们似乎很自然,而带有显式接收者和参数的方法似乎更适合它们。

代码语言:javascript
运行
复制
has_many :users

User.find_all_by_field(my_var)

vs

代码语言:javascript
运行
复制
has_many(:users)

User.find_all_by_field my_var
票数 3
EN

Stack Overflow用户

发布于 2011-01-25 06:48:03

  1. I将attr_accessible*放在has_*声明之后。

我记得,如果我没有按上述顺序申报错误,就会有错误发生。(我明天会重现这个问题,并再次确认)

试过了:

作品:

has_one :某样东西,accepts_nested_attributes_for:

但这会导致错误:

No association found for name 'something'. Has it been defined yet?

accepts_nested_attributes_for :某样东西,has_one:

我认为,我之所以会出现这个错误,是因为我在something调用之前在scope中使用了

  • --如果您执行@posts.something并在一个(例如索引)视图中获取nil错误,但是您知道索引操作中的@posts = Post.find是有效的,请加倍确保在控制器类代码中没有另一个(很可能是空的) def indexH 214G 215
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4788601

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档