Ich habe ein Modell "Trip" und ich möchte in der Lage sein, nur bestimmte Benutzer in "Gruppe" erstellen "Kommentare".Erstellen einer neuen Beziehung, so dass nur bestimmte Benutzer ein Dokument bearbeiten können
Als ich das Trip-Modell zum ersten Mal erstellte, ließ ich es so einstellen, dass nur ein Benutzer es bearbeiten kann. Nun möchte ich andere Benutzer einladen können, sie ebenfalls zu bearbeiten. Der Teil, der mich (Wortspiel beabsichtigt) im Moment stolpert ist, dass ich sowohl trip belong_to :user
(der Benutzer, der es erstellt hat) und trip has_many :users, :through => :group
.
Fragen:
- Ist das pro Rails-Konvention erlaubt?
- Basierend auf meinem Modell wird die Gruppe sowohl user_id als auch trip_id haben. Ist das der beste Weg, dieses Problem anzugehen? Das heißt, sollte es einen neuen Datensatz in der Datenbank für jeden Benutzer geben, den ich in die Gruppe einlade?
Dank.
user.rb
class User < ActiveRecord::Base
has_many :trips, :through => :groups
has_many :trips, :dependent => :destroy
has_many :groups
has_many :comments, :dependent => :destroy
end
group.rb
class Group < ActiveRecord::Base
belongs_to :trip
belongs_to :user
end
trip.rb
class Trip < ActiveRecord::Base
belongs_to :user
belongs_to :traveldeal
has_many :groups
has_many :users, :through => :groups
end
comment.rb
class Comment < ActiveRecord::Base
belongs_to :user
belongs_to :commentable, :polymorphic => true
end
Ansicht (show.html.erb)
<% unless @user.trips.empty? %>
<% @user.trips.each do |trip| %>
<!-- Content here -->
<% end %>
<% end %>
Probieren Sie ': through =>: groups' anstelle von': group' – niiru
Meine Ansicht zeigt den Fehler nicht mehr an, aber es werden keine Fehler angezeigt, die dem Benutzer gehören. Korrektur zum Posten gemacht. – Huy