Rails 4: Verwendung von includes () mit where () zum Abrufen zugeordneter Objekte

Ich kann nicht herausfinden, wie ich die.where() Methode zum Abrufen der zugehörigen Modelldaten. In diesem Beispiel gehört Projekte Benutzern ...

class Project < ActiveRecord::Base
    belongs_to :user
    has_many :videos
end

class User < ActiveRecord::Base
    has_many :projects
end

class ProjectsController < ApplicationController
  def invite
    @project = Project.includes([:user]).where( {:hashed_id=>params[:id]} ).first
  end
end

In App / views / projects / invite.html.erg<%= debug( @project ) %> kehrt zurück:

--- !ruby/object:Project
attributes:
  id: 22
  name: Some Project Name
  belongs_to: 1
  instructions: Bla bla bla
  active: true
  max_duration: 2
  max_videos: 
  created_at: 2013-08-26 15:56:50.000000000 Z
  updated_at: 2013-08-26 15:56:50.000000000 Z
  hashed_id: '1377532589'

Sollte der zugehörige User-Hash / Array nicht mit einbezogen werden? Ich weiß, dass ich es manuell hinzufügen kann, indem ich eine Sekunde anrufefind/where ( @project.user = User.where( {:id=>@project.belongs_to} ), aber das fühlt sich nicht wie "The Rails Way" an. Was ist?

Lösung Meine ursprüngliche Frage wurde unter der falschen Annahme formuliert, dassdebug() würde zugehörige Objekte zurückgeben (dies funktioniert in cakePHP, weil es alles in Arrays bündelt).

Also mein Originalcodesollte Arbeit. Ich hatte jedoch den in der Tabelle abgelegten Fremdschlüssel falsch benannt. Ich war verwirrt, als ich mir die Migrationsmethode ansaht.belongs_to (das automatisch das richtig benannte foreign_key Feld erzeugt,nicht ein Feld mit dem Namen "belong_to"). Also musste ich diese Spalte auch in umbenennenuser_id und jetzt funktioniert es genau so, wie es in der Antwort von @ Veraticus unten beschrieben ist.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage