`
hideto
  • 浏览: 2678354 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

每天一剂Rails良药之DRY Up Your ActiveRecord Code With Scoping

    博客分类:
  • Ruby
阅读更多
Rails真的是在搜肠刮肚挖空心思想方设法的给代码减肥瘦身,这次我们来看看with_scope方法
class PostsController < ApplicationController
  before_filter :scope_posts_to_user

  def show
    @posts = Post.find(:all)
  end

  def create
    @post = Post.create(params[:post])
  end

  private

  def scope_posts_to_user
    Post.with_scope({
      :find => {:conditions => ['user_id = ?', @user.id]},
      :create => {:user =. @user}
    }) { yield }
  end

上面的yield块也可以用来find或create Post
with_scope方法还可以嵌套scope,详见http://api.rubyonrails.com/classes/ActiveRecord/Base.html#M001024
分享到:
评论

相关推荐

    Pro ActiveRecord Databases with Ruby and Rails.pdf

    **ActiveRecord**是Ruby on Rails的核心组件之一,它提供了一种简洁的方式来进行数据库交互,通过模型对象(Models)将数据库表映射到程序中。这种方式简化了数据库操作,使得开发人员能够更加专注于业务逻辑而不是...

    Apress Pro ActiveRecord Databases with Ruby and Rails.pdf

    **ActiveRecord**是Ruby on Rails框架中的核心组件之一,它实现了ORM的概念,允许开发者以面向对象的方式处理数据库记录。通过ActiveRecord,开发者可以轻松地创建、读取、更新和删除数据库中的数据,而无需编写复杂...

    hashid-rails:在Rails应用程序ActiveRecord模型中使用Hashids(http:hashids.orgruby)

    Hashid Rails 该宝石可让您轻松在Rails应用程序中使用 。 您的模型将使用唯一的短哈希,例如“ yLA6m0oM”,“ 5bAyD0LO”和“ wz3MZ49l”,而不是使用诸如1、2、3之类的序号的模型。 数据库仍然会使用整数,因此...

    Agile+Web+Development+with+Rails中文版.pdf

    《Agile Web Development with Rails》是一本经典的Rails开发指南,中文版的出版使得更多的中国开发者能够深入理解并应用敏捷开发方法与Ruby on Rails框架。这本书是Rails开发者的必备参考资料,它详细介绍了如何...

    Rails3的ActiveRecord 查询API.doc

    Rails 3.1 及以后版本的 ActiveRecord 查询API发生了重大变化,主要目的是为了提供更清晰、更可维护的代码,并且提高性能。在 Rails 2.x 中,许多使用哈希参数的查询方法如 `:conditions`, `:include`, `:joins` 等...

    Agile Web Development with Rails 4

    Best practices on how to apply Rails continue to change, and this edition keeps up. Examples use Concerns, Russian Doll caching, and Turbolinks, and the book focuses throughout on the right way to ...

    Agile Web Development with Rails

    Rails作为Ruby的一个开源Web应用框架,以其DRY(Don't Repeat Yourself)原则、MVC(模型-视图-控制器)架构以及对敏捷开发理念的支持,深受开发者喜爱。 在Ruby编程语言的基础上,Rails提供了一种简洁、高效的语法...

    userstamp, 这个 Rails 插件扩展ActiveRecord.zip

    userstamp, 这个 Rails 插件扩展ActiveRecord Userstamp插件( v-2.0 )概述Userstamp插件扩展了 ActiveRecord::Base,以添加对'创建者','更新程序'和'deleter'属性的自动更新。 它是基于 ActiveRecord::Timesta

    ActiveRecord-Without-Rails:只是在没有Rails的情况下使用ActiveRecord迁移的简单示例

    没有Rails的ActiveRecord 只是在没有Rails的情况下使用ActiveRecord迁移的简单示例您可以执行的任务: rake db:create rake db:migrate rake db:dropRails 5+的注意事项请注意,即使使用Rails 5,您也需要rake db:...

    Agile Web Development with Rails (4th edition) source Code zip file

    《Agile Web Development with Rails (4th edition)》是一本深受开发者欢迎的书籍,它深入介绍了如何使用Ruby on Rails框架进行敏捷的Web开发。这本书的源代码提供了丰富的实例和练习,帮助读者更好地理解和实践...

    Agile Web Development With Ruby On Rails第一及第二版

    《Agile Web Development With Ruby On Rails》是两本广受欢迎的书籍,主要涵盖了使用Ruby on Rails框架进行敏捷Web开发的知识。这本书的第1版和第2版分别详细讲解了如何运用敏捷开发方法来构建高效、可扩展且易于...

    Rails_Recipes_with_Source_Code

    《Rails Recipes with Source Code》是一本专注于Ruby on Rails框架实践技巧和源代码解析的书籍。Rails是基于Ruby语言的Web开发框架,以其“约定优于配置”(Convention over Configuration)的理念和“开发人员的...

    Agile Web Development with Rails (PDF)

    Rails作为一款基于Ruby语言的Web应用框架,自诞生之初就秉持着敏捷开发的理念。它强调代码的简洁性、易读性和快速迭代能力,这些特性与敏捷开发的原则不谋而合。通过Rails,开发者可以迅速构建功能丰富的Web应用,...

    Agile Web Development with Rails Final

    ### Agile Web Development with Rails Final: Key IT Knowledge Points #### Introduction: Ruby on Rails Framework Ruby on Rails (often shortened as Rails) is a server-side web application framework ...

    Agile Web Development with Rails 3nd Edition Beta.pdf

    通过上述分析,我们可以看到,《敏捷Web开发与Rails》第三版不仅是一本关于Rails框架的技术书籍,更是一部指导开发者如何运用敏捷方法论进行Web开发的经典之作。无论对于初学者还是经验丰富的开发者而言,本书都具有...

    Rails.Angular.Postgres.and.Bootstrap.2nd.Edition

    Achieve awesome user experiences and performance with simple, maintainable code! Embrace the full stack of web development, from styling with Bootstrap, building an interactive user interface with ...

Global site tag (gtag.js) - Google Analytics