Bonjour,

J'ai un petit soucis, je suis sur la page show de l'utilisateur, avec un modèle 'Evaluation' et lorsque je veux créer une Evaluation par la méthode create l'id trouvé est celui de mon utilisateur et non pas celui de l'evaluation en question, je précise j'ai 2 controllers pour la meme vue, User et Evaluation

Merci de votre aide :)

EDIT : Si j'enleve "@evaluation = Evaluation.find(params[:id])" dans la méthode variable, il me trouve bien l'id de l'evaluation dans la requete mais je ne peux pas acceder au variable créer @loyer_profil et @revenus_profil

#EvaluationsController
class EvaluationsController < ApplicationController

def create
    @evaluation = Evaluation.create
  end

  def update
    @evaluation = Evaluation.find(params[:id])
    @evaluation.update(eval_params)
  end

def variable
  if @evaluation.save
    @evaluation = Evaluation.find(params[:id])
      @loyer_profil = @evaluation.edp_loyer
      @revenus_profil = @evaluation.edp_revenus_mensuels
    end
end

end

#UsersController
class UsersController < EvaluationsController

def show
    unless @user == current_user
      redirect_to root_path, :alert => "Accès refusé."
    end
    create
    variable
  end

  end

16 réponses


Salut,

Déjà je ne comprends pas trop cette classe

#UsersController
class UsersController < EvaluationsController

def show
    unless @user == current_user
      redirect_to root_path, :alert => "Accès refusé."
    end
    create
    variable
  end

  end

Je ne sais pas si il y a que ça.

tu peux faire ça :

class EvaluationsController < ApplicationController
before_action :connected, only: [:show]

    def connected
        redirect_to root_path, :alert => "Accès refusé." if user_signed_in? 
    end
end

ensuite tu répète le find params fait une méthode et tu crée une before action pour les actions qui ont besoins id

ensuite je ne sais pas exactement ce que tu veux faire mais il te manque un new ( si tu as un formulaire pour ton evaluation.)

ta méthode variable je la comprends pas car je ne vois pas ce que tu veux faire. essayer d'expliquer les actions. :)

lyorb
Auteur

Bonsoir,
Merci de ta réponse, je t'explique : mon but est d'acceder aux données du simple_form_for @evaluation en remote: true qui est dans un modal sur la page show de l'user et a la confirmation du formulaire (requete xhr qui passe bien avec les params du form) une autre modal s'ouvre avec afficher ces données precedemment envoyé, tu te doute bien que mon but n'est pas de seulement afficher ces données mais j'en est besoin pour creer un algo par la suite

La methode Show ne sert qu'a afficher la page de l'utilisateur


En gros tu as un formulaire dans un modal ensuite tu valide ton formulaire et sa va ouvrir un nouveau modal.
C'est ça ?

lyorb
Auteur

Oui exact

donc ton formulaire marche ?

lyorb
Auteur

Oui il marche mon formulaire c'est juste sur le nouveau formulaire de réponse j'arrive pas a avoir par exemple <%= @evaluation.edp_loyer %> qui est censé me renvoyé la valeur du loyer . Mais au plus etonnant <%= @evaluation.id %> me renvoit bien l'id de l'evaluation

fait un puts de @evaluation et vois ce qui as dedans

Pas de souci tu veux discuter sur quoi

OUi pas de souci mais tu veux discuter sur skype, hanghout etc ....

Ok je vais manger et reviens

je ne tes pas oulier, je dois terminé un test technique et je reviens vers toi .

Bonjour je viens de terminé on peux se capter demain vers les 16h30 ?

lyorb
Auteur

D'accord , aucun probleme

Bonjour.
Je crois bien que vous n'avez pas compris à quoi sert le forum, l'aide doit être apportée sur le forum lui même et non servir de lieu de discussion et de rencontre.

lyorb
Auteur

Oui merci de nous apprende a quoi sert un forum, evidemment qu'apres que la solution du problème soit trouvé je la posterai sur le forum, mais pour mieux se comprendre le forum n'est pas l'idéal, mais merci de ta réaction très intéressante