2015-01-19 16 views
5

Sono nel tutorial Rails lavorare su esercizi alla fine del capitolo 2 e sono perplesso. www.railstutorial.org/book/toy_app#sec-toy_app_exercises~~V~~3rdRails Tutorial - 2.5.2 Non è possibile ottenere l'esercizio validaiton funzionare

Assegnazione 2 dice: "Aggiornamento Listing 2.19 sostituendo FILL_IN con il codice appropriato per verificare la presenza di nome e indirizzo email attributi nel modello utente (Figura 2.20) . "

ed è piuttosto semplice Listing 2.19:

Adding presence validations to the User model. app/models/user.rb 
class User < ActiveRecord::Base 
    has_many :microposts 
    validates FILL_IN, presence: true 
    validates FILL_IN, presence: true 
end 

prima cosa che ho fatto è stato il tipico errore niubbo e appena copiato il codice direttamente fuori dalla lista. Sistema è tornato e mi ha chiesto che cosa era questa variabile "FILL_IN".

prossima cosa che ho fatto, è stato quello di provare a mettere nei nomi dei campi nel mio file user.rb

class User < ActiveRecord::Base 
    has_many :microposts 
    validates name, presence: true 
    validates email, presence: true 
end 

Running this, gets me a the following error "NameError in UsersController # creare" "variabile locale non definita o metodo` e-mail' per #"

Rails agisce come se non riconosce l'e-mail, o campi del nome dal mio modello.

Ho provato a utilizzare il nome e l'e-mail, ho provato a renderli plurali, ho provato a passare a "rails console" per convalidare che ho creato correttamente i campi "nome" ed "email" (l'ho fatto).

ho provato alla ricerca di una risposta a questa, l'armadio sono arrivato era someone just pasting in the FILL_IN lines and getting harpooned for it.

Spero che non mi sono perso qualcosa di altrettanto ovvio, ma sono pronto per questo se l'ho fatto.

+0

Qual è il tuo schema db? –

+3

Usa 'convalida: nome, la presenza: true',' convalida: e-mail, la presenza: true' (io ho usato i simboli per i nomi di colonna) – cristian

risposta

10

@ Octopus-Paul Impressionante, i due punti (:) prima che i nomi delle variabili siano esattamente ciò di cui avevo bisogno.

class User < ActiveRecord::Base 
    has_many :microposts 
    validates :name, presence: true 
    validates :email, presence: true 
end 
+0

Stessa cosa è successo a me! – skwidbreth