0

Je suis la fonction de railcast de Ryan Bates sur les colonnes de table triées et j'ai obtenu une colonne pour trier ascendante et descendante.Railscasts # 228 - Colonnes de table triées

Ma table est plus complexe que dans le Railscast car j'ai des colonnes de tables différentes.

# controller 
@cars = Car.find(:all).order(sort_column + " " + sort_direction).includes(:manufacturers) 


#view 
<%= sortable "age" %> 

Comment ajouter des colonnes triables pour des tables connexes telles que des fabricants?

Répondre

3

J'ai eu un problème similaire. Got it fixe avec quelque chose comme:

<%= sortable "manufacturers.name", "Manufacturer name" %> 
<%= sortable "cars.age", "Age" %> 

La fonction de tri dans le application_controller devrait être quelque chose comme ceci:

def sort_column 
    ['manufacturers.name', 'cars.age'].include?(params[:sort]) ? params[:sort] : 'cars.age' 
end 
+0

Salut Cristian, il ne fonctionne pas malheureusement. Il fonctionne dans la même table mais n'utilise pas le code ci-dessus pour trier les autres colonnes. Êtes-vous sûr que ce code exact a fonctionné? – sscirrus

+0

J'ai donné plus de détails sur la réponse. Est-ce que ça marche maintenant? –

+0

Salut Christian, j'ai joué pendant 30 minutes et j'ai commencé à le faire fonctionner - j'avais besoin d'un contrôleur et de voir les réglages pour l'obtenir. Voici le dernier défi: un de mes champs triable est une méthode de classe de voitures intitulée «efficacité», qui est un calcul basé sur deux autres champs des voitures (diviser un champ par l'autre). Il ne trouve pas cars.efficiency :) – sscirrus