0

Im utilisant la gemme acts_as_follower et la gemme friendly_id.acts_as_followers et friendly_id gemmes ne trouvant pas l'ID

Iv mis en place act_as_follower et tout fonctionne comme il se doit, je suis en mesure de suivre selon les besoins. Mais maintenant, j'ai ajouté la gemme friendly_id pour afficher les URL de profils comme profile/myname plutôt que profile/1.

Mais le joyau acts_as_follower ne fonctionne pas, il ne peut pas trouver l'identifiant de profil à suivre:

C'est la mise en place ce que je suis en train maintenant, mais cela ne fonctionne toujours pas.

def follow 
    @profile = Profile.find(params[:profile_id]) 
    current_user.follow(@profile) 
    redirect_to :back 
    end 

    def unfollow 
    @profile = Profile.find(params[:profile_id]) 
    current_user.stop_following(@profile) 
    redirect_to :back 
    end 

Avant était:

@profile = Profile.find(params[:id]) 

L'erreur que je reçois est:

Couldn't find Profile with 'id'= 

Il params qui sont transmis sont:

{"id"=>"gurmukh-singh"} 

l'id son cherche maintenant est l'URL amicale name

également la nouvelle version friendly_id EXIGE i trouver des profils comme ceci:

def set_story 
    @profile = Profile.friendly.find(params[:id]) 
end 

Répondre

1

dans votre contrôleur, vous devez changer pour

def follow 
    @profile = Profile.friendly.find(params[:id]) 
    current_user.follow(@profile) 
    redirect_to :back 
    end 

    def unfollow 
    @profile = Profile.friendly.find(params[:id]) 
    current_user.stop_following(@profile) 
    redirect_to :back 
    end 

Ensuite, cela devrait fonctionner

+0

obtenir encore cette erreur 'Impossible de trouver le profil sans ID 'et les paramètres envoyés sont' {"id" => "gurmukh-singh"} '. L'id devrait être quelque chose comme «1» ou quelque chose, pas sûr pourquoi les noms étant passés parce qu'il essaye de trouver '(params [: profile_id])' –

+0

Ce n'est pas un parce que l'ID amical l'a fait dans une limace – MZaragoza

+0

son essayant de trouver le 'id' mais les params son passage est le' slug', mais ne peux pas le trouver parce qu'il n'y a pas 'id' qui est stocké comme le nom' slugged' –