2015 年 1 月 24 日,星期六

This week in Rails:模型错误详细信息,存在表的情况中取消表及更多!

发布者:claudiob

星期五了!一定要阅读 This Week in Rails!

我是 Claudio,赶忙为您带来 Rails 有趣提交和请求调用的每周更新。

本周的 Rails 贡献者

25 位贡献者帮助 Rails 成为更好的框架。持续提供补丁,Rails 5 将在您不知不觉中准备就绪。

新内容

ActiveModel::Errors#details

给定一个没有电子邮件的用户,user.errors.details 将返回 {email: [{error: :blank}]}。在某些情况下,这比 user.errors.messages 提供的消息 {email: ["can't be blank"]} 更有用。
此篇博文中 有一个良好的用法示例。

drop_table 的 :if_exists 选项

在迁移中编写 drop_table(:users, if_exists: true) 可确保无论“users”表是否存在该迁移都将运行而不会出现异常。

ActionController::Renderer

现在 ActionController::Base#render 方法可以在任何地方(甚至控制器外部!)输出一个模板。

ActiveRecord::Base#accessed_fields

调用 @users = User.all 可列出所有用户,但通过指出您打算访问的确切字段(例如通过 @users = User.select(:name, :email)),您可以获得更好的性能。

新的 @users.accessed_fields 方法将为您提供从模型访问的字段列表,因此您可以轻松地使用 .select 而不是 .all 优化您的查询。

优化

加快 ActionController::Renderer 的速度

每个人都喜欢可以加快 Rails 速度的请求调用,尤其是记录和验证了性能提升时尤为如此。
当有疑问时,始终使用 benchmark/ips 提供用于对比的基准结果。

总结

This week in Rails 的内容到此为止。一如既往,还有更多变化我们无法在这里一一介绍,但请随时 亲自查看

补充:如果您喜欢本新闻稿,何不 与您的朋友分享?:) 如果您希望加入这个项目,请随时联系 Godfrey – 您有许多方式可以帮助让本新闻稿变得更棒!