J'ai deux tables qui a beaucoup à manyRails données variables est en train de changer
étudiants projets
reliés par la table student_projects
student = Student.find(1)
old_projects = student.projects
#Now Iam calling function that will create projects
create_projects
student = Student.find(1)
new_projects = student.projects
newly_added_projects = new_projects - old_projects
Les anciens projets étaient vides, ne sont pas new_projects
Je mets l'instruction logger avant de créer et après la ligne (new_projects = students.projects), alors je peux voir le di férence.
Mais quand je mets la déclaration de l'enregistreur uniquement après la ligne (newly_added_projects = new_projects - old_projects) inspectant old_projects, new_projects, newly_added_projects
alors old_projects est égal à new_projects
quelqu'un peut me aider dans ce
Rails tente de différer l'accès à la base de données jusqu'à ce que les données soient réellement nécessaires. Je ne suis pas sûr de savoir comment se comporte Rails 3, mais je suppose que 'old_projects = student.projects' ne retourne pas un tableau, mais une sorte de proxy. Et que les deux requêtes sont exécutées en invoquant '-' (donc les deux retournent le même résultat). Essayez d'appliquer la requête en ajoutant un 'to_a', c'est-à-dire' old_projects = student.projects.to_a' – Stefan
Quelle est la version de Rails que vous utilisez? – Mohanraj
Stefan - Merci cela fonctionne –