2010-10-15 6 views
3

Je suis le tutoriel railstutorial.org. Bien que je puisse voir le gravatar sur la page Web, mon test rspec échoue.ruby ​​sur rails gravatar_image_tag

Voici le test de user_controller_spec.rb:

describe "GET 'show'" do 

    before(:each) do 
    @user = Factory(:user) 
    end 

    it "should be successful" do 
    get :show, :id => @user 
    response.should be_success 
    end 

end 

Voici le fichier show.html.erb concerné.

<table class="profile" summary="Profile information"> 
    <tr> 
    <td class="main"> 
     <h1> 
     <%= gravatar_image_tag(@user.email) %> 
     <%= @user.name %> 
     </h1> 
    </td> 
    <td class="sidebar round"> 
     <strong>Name</strong> <%= @user.name %><br /> 
     <strong>URL</strong> <%= link_to user_path(@user), @user %> 
    </td> 
    </tr> 
</table> 

je reçois une erreur indiquant « méthode non définie 'gravatar_image_tag' I déjà installé le gem correspondant en exécutant "gem install gravatar_image_tag", ajouté à mon gemfile, et également exécuté "bundle install" Il est répertorié comme installé lorsque j'exécute "gem list"

J'ai essayé de déboguer cela pendant plusieurs heures maintenant. Toute aide serait appréciée. Merci d'avance. BTW, je suis en cours d'exécution Windows 7 32 bits avec GIT Bash, RubyInstaller-1.9.2-p0.

Message d'erreur:

alt text

Répondre

1

est le joyau gravatar_image_tag global à tous les environnements dans votre Gemfile? Si vous l'avez dans un bloc group :development, :production, ou quelque chose de similaire, il ne serait pas disponible en test.

Et je ne l'ai pas essayé, mais votre ligne:

get :show, :id => @user

semble comme il doit être:

get :show, :id => @user.id

+0

Merci l'homme !!! C'était le problème. J'ai eu le gravatar_image_tag gem dans le groupe de développement !!! Merci beaucoup!!! – sizzle

+3

obtenir également: show,: id => @user et obtenir: show,: id => @ user.id sont identiques – Calin

1

Je suis l'auteur de la pierre précieuse. Pouvez-vous ouvrir un problème sur la page github http://github.com/mdeering/gravatar_image_tag/issues avec la version de rails et une liste de gemmes pour moi. Je vais voir si je peux résoudre le problème pour vous et poster une réponse ici.

J'ai quelques versions préliminaires de la gemme que je pourrais pousser à gemcutter qui pourrait déjà résoudre le problème.

Cheers, Mike D.

19

Après le même tutoriel, j'ai eu la même erreur undefined method 'gravatar_image_tag', mais une solution différente de celle acceptée un au-dessus (mon petit bijou était au bon endroit dans la Gemfile, de sorte que WASN 't le problème).

Juste dû redémarrer le serveur (Ctrl C puis rails server), puis tout a été corrigé.

+0

Un redémarrage a également fonctionné pour moi. – John

+0

Moi aussi. Merci @TJ! –

0

Le fichier GEM Gravatar a été mis à jour depuis la publication du PDF de Michael Hartl.

gem 'gravatar_image_tag' 

inclure dans votre Gemfile puis redémarrez votre serveur en utilisant des rails

rails s 

Cela a fonctionné pour moi.

1

Si vous utilisez Spork comme serveur DRB, essayez de le redémarrer, cela m'a aidé! (Je suis aussi en train de suivre Hartls PDF).

1

J'ai eu le même problème, un simple redémarrage l'a corrigé.