在线和其他地方进行尽职调查后,我仍然无法根据其类别对帖子(视图和控制器)进行排序。
我有三个模型:Design
,Category
和Type
。
Design.rb
belongs_to :type
Category.rb
has_many :designs
has_many :types, :order => "name"
Type.rb
belongs_to :category
belongs_to :design
如果需要在这里更改某些内容,请详细说明。
在开始此搜索以找到对帖子进行排序的答案之后,我遇到了另一个问题,我将在另一个问题中提出这个问题,但为了以防将在此处公开。在命令行中,如果我搜索某个类别,我会得到类别,但也会收到警告:
DEPRECATION WARNING: The following options in your Category.has_many :types declaration are deprecated: :order. Please use a scope block instead.
当我搜索Type I时会收到此警告:
DEPRECATION WARNING: Using #scope without passing a callable object is deprecated. For example `scope :red, where(color: 'red')` should be changed to `scope :red, -> { where(color: 'red') }`.
无论如何,在我当前的应用中,类别为men
和women
,类型包括accessories, shirts, tops, jackets, etc
等等。当用户创建设计时,他们可以选择具有以下标题的类型:
Men
Accessories
Jackets
etc
Women
Accessories
Dresses
etc
在我看来,我希望用户能够按男性或女性(类别)对帖子进行排序,甚至可以Type
进一步排序,例如Women's Accessories
或Men's Accessories
类别和类型都可以通过ID或字符串找到。
如果我能提供其他任何帮助,请告诉我,我会尽可能多地加入。感谢。
答案 0 :(得分:3)
在Rails 4中,您将条件传递到块中的has_many
,belongs_to
等:
has_many :types, -> { order("name") }
然后,当访问该关联时,将在该关联上调用该块,例如:
my_category.types
# would return the same result as
my_category.types.order("name")