我正在寻找人们在使用Rails时的良好*实践示例。
我有几个这样的:
before_filter调用位于控制器类名声明之下,没有其他地方。名称空间的BaseController,而不是ApplicationController。只有一个ApplicationController.attr_*方法在它们各自的classes.attr_*方法,或者在model.private方法。现在,我并不是在寻找Ruby的良好实践,而是寻找更多的Rails中的优秀实践。上面列出的只是一个例子,而不是福音。
*我不想使用“最佳实践”这个词,因为最好的意思是终极的,而且在任何情况下,人们都可能不同意。
发布于 2011-01-25 05:15:16
我发现一个非常一致的做法是,当括号合适的时候。DSL类宏(如验证和关联)没有它们似乎很自然,而带有显式接收者和参数的方法似乎更适合它们。
has_many :users
User.find_all_by_field(my_var)vs
has_many(:users)
User.find_all_by_field my_var发布于 2011-01-25 06:48:03
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 index!H 214G 215https://stackoverflow.com/questions/4788601
复制相似问题