Salut les gars J'ai une relation dans Mongoid et je ne peux pas ajouter current_user à cette relation pour obtenir l'utilisateur qui crée l'affaire. Une relation avec 3 modèle.Ajouter current_user Concevoir pour les relations Mongoid
J'ai trois modèles user.rb, house.rb et deal.rb
user.rb relations (modèle) concevoir
# Relationships
has_many :houses, dependent: :destroy
has_many :deals, dependent: :destroy
key :title
house.rb
# Relationships
belongs_to :user
embeds_many :deals
deal.rb
# Relationships
embedded_in :house, :inverse_of => :deals
belongs_to :user
Dans mon routes.rb
resources :houses do
resources :deals
end
Dans mon houses_controller.rb dans ma méthode de création je reçois current_user pour chaque maison de ce côté:
def create
#@house = House.new(params[:house])
@house = current_user.houses.new(params[:house])
respond_to do |format|
if @house.save
format.html { redirect_to @house, notice: 'House was successfully created.' }
format.json { render json: @house, status: :created, location: @house }
else
format.html { render action: "new" }
format.json { render json: @house.errors, status: :unprocessable_entity }
end
end
end
Dans mon deals_controller .rb J'ai la méthode créée ceci:
def create
@house = House.find_by_slug(params[:house_id])
@user = User.find(:user_id)
@deal = @house.deals.create!(params[:deal])
redirect_to @house, :notice => "Comment created!"
end
Comment puis-je ajouter à cette dernière méthode create, le current_user qui a créé le deal?
Merci! J'ai changer créer pour nouveau et enregistrer: D. Cependant, pour "embeds_many: deals" dans house.rb et "embedded_in: house,: inverse_of =>: deals" dans deal.rb, affichez l'erreur "Référencer un document Deal (n) du document User via une association relationnelle n'est pas autorisé depuis que le Deal est intégré. " Mais avec has_many et belongs_to fonctionne bien. Est-ce mieux travailler avec embeds_many ou has_many et références? Merci – hyperrjas
Si quelqu'un trouve ceci, pour éviter l'erreur que @hyperrjas voit, c.-à-d. "Référencer un document d'accord (n) du document d'utilisateur par l'intermédiaire d'une association relationnelle n'est pas autorisé puisque l'accord est incorporé." Il suffit de retirer cette ligne de l'user.rb qu'il a défini dans sa première question #has_many: deals, dependent:: destroy – brg