Ich habe Probleme, diese Zuordnung zwischen meinen Modellen einzurichten.Hat eine Beziehung durch vier Modelle?
Ein Benutzer hat viele Unterkünfte und Unterkünfte haben einen Benutzer.
Unterkünfte haben viele Benachrichtigungen und Benachrichtigungen haben eine Unterkunft.
Anfragen haben viele Benachrichtigungen.
Wie kann ich es so einrichten, dass ich alle Anfragen für einen bestimmten Benutzer (dh Benutzer -> Unterkünfte (jeweils) -> Benachrichtigung -> Anfrage) bekommen kann?
Update:
Hier ist meine aktuelle Controller-Datei:
class PanelController < ApplicationController
before_filter :login_required
def index
@accommodations = current_user.accommodations.all
@requests = Array.new
@accommodations.each do |a|
a.notifications.each do |n|
@requests << Request.where('id' => n.request_id)
end
end
end
end
Und Modelle:
models/user.rb
class User < ActiveRecord::Base
[snip]
has_many :accommodations
has_many :notifications,
:through => :accommodations
end
Modelle/accommodation.rb
class Accommodation < ActiveRecord::Base
validates_presence_of :title, :description, :thing, :location, :spaces, :price, :photo
attr_accessible :photo_attributes, :title, :description, :thing, :location, :spaces, :price
has_one :photo
has_many :notifications
belongs_to :user
accepts_nested_attributes_for :photo, :allow_destroy => true
end
models/notification.rb
class Notification < ActiveRecord::Base
attr_accessible :accommodation_id, :request_id
has_one :request
belongs_to :accommodation
end
models/request.rb
class Request < ActiveRecord::Base
belongs_to :notifications
attr_accessible :firstname, :lastname, :email, :phone, :datestart, :dateend, :adults, :children, :location, :status
validates_presence_of :firstname, :lastname, :email, :phone, :datestart, :dateend, :children, :adults, :location
end
senden Sie Ihre Modelldateien bitte – sethvargo
Sie nicht habe die Assoziationen noch: P Ich glaube nicht, dass es irgendwas wert ist, zu posten. Wenn ich falsch liege, lass es mich wissen und ich werde sie aufschreiben! –
Wenn du "have one" schreibst, meinst du wirklich "gehört" zu Recht? – jdl