こんにちは私はこのモデルを持っています
モデルアイテム
class Inventory::Item < ActiveRecord::Base
has_many :types, :class_name => "ItemType"
attr_accessible :name
end
モデルitem_type
class Inventory::ItemType < ActiveRecord::Base
belongs_to :item
attr_accessible :number
end
次に、コントローラーで、タイプ(クラスItemTypeを持つ)をアイテム名に基づいて昇順でソートしたいとしましょう。それ、どうやったら出来るの?
例えば、
したがって、番号からソートするのではなく、item.name(ASC)に基づいて次のようにソートする必要があります。
このような何かがトリックを行う必要があります...
ItemType.includes( :item ).order( 'inventory_items.name DESC' )
また、多くの場所でこれを行う必要がある場合は、:order
パラメータをhas_many
呼び出し、代わりに- http://apidock.com/Rails/ActiveRecord/Associations/ClassMethods/has_many 。
次のようにモデルでデフォルトの順序を設定することもできます。
default_scope order("#{self.table_name}.item_name ASC")
これにより、コントローラを変更せずにitem_nameでアイテムが並べ替えられます
名前の種類のフィールド(アルファベット)にASC(デフォルトのソートモード)を作成するには、
You can use ORDER BY Clause in MySQL
したがって、In Rails
Model.order(:field_name)