大佬教程收集整理的这篇文章主要介绍了ruby-on-rails – 覆盖默认范围(特别是顺序),而Rails中没有其他的范围,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
default_scope :order => "publish_at DESC"
在作者展示页面上,我想列出与该作者相关联的所有书籍,所以我说下列内容:
@author = Author.find(params[:id]) @books = @author.books
一切都很好,到目前为止.作者#显示页面列出按出版日期排列的所有作者.
我也在研究一种能够按照一本书的流行排列的宝石.
@books = @author.books.sorT_By_popularity
问题是每当它尝试排序时,default_scope总是会阻碍.如果我尝试去除它之前,它会摆脱作者的关系,并返回数据库中的每本书.例如
@books = @author.bookS.Unscoped.sorT_By_popularity # returns all books in database
我想知道是否可以使用ActiveRelation except() method
做这样的事情(这似乎应该工作,但它不会,它忽略了顺序,只是当它是一个default_scope命令)
def sorT_By_popularity self.except(:order).do_some_joining_magic.order('popularity ASC') # |------------| |---------------------| end
任何想法,为什么这不工作?关于如何让这个工作有其他方式的任何想法?我知道我可以摆脱default_scope,但我想知道是否有另一种方法来做到这一点.
以上是大佬教程为你收集整理的ruby-on-rails – 覆盖默认范围(特别是顺序),而Rails中没有其他的范围全部内容,希望文章能够帮你解决ruby-on-rails – 覆盖默认范围(特别是顺序),而Rails中没有其他的范围所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。