Supposons que j'avoir ces 6 modèles tels queComment puis-je utiliser le chargement impatient dans ce cas?
- utilisateur
- Profil
- Sexe
- Pays
- Préfecture
- Car
User
a un Profile
.
Ensuite, chaque Profile
a ceux qui sont gender_id
, country_id
et prefecture_id
.
User
a aussi beaucoup Cars
Je suis en indiquant Asssociation comme ça.
modèles/user.rb
has_one :profile
has_many :cars
scope :confirmed, where("sign_in_count != ?",0)
paginates_per 10
modèles/profile.rb
belongs_to :user
belongs_to :gender
belongs_to :country
belongs_to :prefecture
modèles/gender.rb
has_many :user_profile
modèles/country.rb
has_many :user_profile
modèles/prefecture.rb
has_many :user_profile
modèles/car.rb
belongs_to :user
Et voici ma question!
Comment puis-je corriger mon code dans le contrôleur et afficher?
Ceci est mes codes actuels.
CONTRÔLEUR
@users = User.confirmed.joins(:profile).page(params[:page]).order('profiles.total_point DESC')
VIEW
<% @users.each do |user| %>
<tr>
Username: <%= user.username %> <br />
Total Point: <%= user.profile.total_point %> <br />
Gender: <%= user.profile.gender.data %> <br />
Country: <%= user.profile.country.data %> <br />
Prefecture: <%= user.profile.prefecture.data %> <br />
The number of the cars that the user owns: <%= user.cars.count %> <br />
</tr>
<% end %>
Pourquoi le genre est-il un modèle distinct? Il n'y aura pas de nouveaux genres demain. Il devrait juste être un attribut de l'utilisateur à mon avis. – Mischa
parce que je le veux comme le nombre (entier) pour résumer l'objectif de performance – HUSTEN
Donc, juste stocker '0' ou' 1' dans votre colonne 'gender' et créer une constante' GENDERS' pour mapper votre entier à un genre. 'GENDERS = {0 => 'male', 1 => 'female'}' Cela n'a aucun sens de créer une table de base de données pour les données qui ne changent jamais. Cela rendra vos requêtes plus faciles et plus rapides. – Mischa