2012-04-09 6 views
0

Je suis actuellement dans section 10.3.2 du Tutoriel Rails (bêta) et j'ai rencontré quelques problèmes avec RSpec.Tutoriel Rails - bizarre comportement RSpec

rspec spec/ runs parfaitement, si je rspec spec/requests/micropost_pages_spec.rb comme décrit dans le tutoriel, je reçois l'erreur suivante:

Failures: 

    1) Micropost pages micropost creation with invalid information should not create a micropost 
    Failure/Error: before { visit root_path } 
    ActionView::Template::Error: 
     undefined method `model_name' for NilClass:Class 
    # ./app/views/shared/_micropost_form.html.erb:1:in `_app_views_shared__micropost_form_html_erb__567210303736562711_70234980477780' 
    # ./app/views/static_pages/home.html.erb:8:in `_app_views_static_pages_home_html_erb___61006871036382679_70234970424160' 
    # ./spec/requests/micropost_pages_spec.rb:11:in `block (3 levels) in <top (required)>' 

Effectuer le test manuellement dans le navigateur Web semble fonctionner parfaitement aussi bien.

Je ne sais pas si j'ai fait quelque chose de mal ou s'il y a un "bug" dans le tutoriel. Quelqu'un peut-il donner un indice?


MISE À JOUR 1: Voici un lien vers la whole project on GitHub.


MISE À JOUR 2: Je maintenant découvert que lorsque je redémarre le rails server je reçois l'erreur, aussi, quand je frappe la page la première fois. Mais quand je charge la page une deuxième fois (recharger) alors cela fonctionne parfaitement.

+2

Pouvez-vous s'il vous plaît [gist] (https://gist.github.com/) votre spec_helper, spec specifié, contrôleur et vue. Grand serait de pousser votre application complète sur github;) – Mailo

+0

Ici, il est: https://github.com/znq/sample_app/tree/396d503d52b437790859917ce710c1aa59d3a426 – znq

+1

Pouvez-vous essayer de changer <% = render 'partagé/micropost_form'%> ' dans home.html.erb à '<% = render: partial =>" shared/micropost_form ",: local => {: micropost => @micropost}%>', puis utilisez 'form_for (micropost)' dans _micropost_form.html .erb? – DanS

Répondre

0

a trouvé le problème. Erreur plutôt stupide. Dans mon static_pages_controller.rb j'avais

def home 
    def home 
     @micropost = current_user.microposts.build if signed_in? 
    end 
    end 

Merci quand même pour les conseils.