当前位置:  开发笔记 > 编程语言 > 正文

如何保持ActiveRecord关联DRY?

如何解决《如何保持ActiveRecord关联DRY?》经验,为你挑选了0个好方法。

我有一个问题,试图在我的应用程序中保持AR finder DRY.我创建了一个博客应用程序,当用户第一次查看博客时,它会获取博客的所有相关页面,帖子,链接,标签和类别.Blog控制器的示例显示操作如下所示:

def show
    #find blog by user name
    @user= User.find_by_login(params[:id])
    @blog= @user.blog
    @posts = Post.status("publish",@user).find(:all, :order => "created_at DESC")
    @tags = @user.tags
    @pages = Page.status("publish",@user).find(:all, :order => "created_at DESC")
    @links = @user.links.public_link.find(:all, :order => 'created_at DESC')
    @archives = @posts.group_by(&:month)
    @categories = @user.categories.group_by(&:name)
    session[:found_user]=@user.login
    render :layout=>false
  end

正如您所看到的,它不是很干,因为还有其他操作会在控制器中进一步调用相同的实例变量,例如@tags等.

我怎么能让这更干?我尝试将其移动到Blog模型中,但我仍然需要在控制器中调用各种实例变量,如@tags等.

有没有办法在首次调用博客时存储所有这些变量,并在控制器和操作中重用它们?

谢谢你的任何建议.我正在使用Rails 2.1

推荐阅读
小妖694_807
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有