appena provato a scrivere un semplice validates_presence_of nel mio modello, e quando gli errori tentano di rendere, si chiama questo:Mancano modelli dalla nuova app Rails 3?
Template is missing
Missing template posts/create with {:locale=>[:en, :en], :handlers=>[:builder, :rjs, :erb, :rhtml, :rxml, :haml], :formats=>[:html]} in view paths "/Users/johnsmith/Sites/shwagr/app/views"
errori non hanno viste separate in Rails3 fanno? Ho pensato che fosse la magia di Rails ..
Curioso se qualcuno ha avuto questo problema, o sapeva come farlo validare correttamente.
il mio modello:
validates_presence_of :category, :name, :url
mio controller:
def new
@post = Post.new
respond_to do |format|
format.html # new.html.erb
format.xml { render :xml => @post }
end
end
def create
@post = Post.new(params[:post])
if @post.valid? && current_user.posts << @post
respond_to do |format|
if @post.save
format.html { redirect_to(@post, :notice => 'Post was successfully created.') }
format.xml { render :xml => @post, :status => :created, :location => @post }
else
format.html { render :action => "new" }
format.xml { render :xml => @post.errors, :status => :unprocessable_entity }
end
end
end
end
Aggiornamento
Interessante, ho 'toccare app/views/messaggi/create.html.haml', e ora ha rimosso l'errore e invece carica quella pagina. Ma perché dovrebbe? O ancora più importante, come posso renderlo semplicemente reindirizzare al nuovo percorso (@post) come dovrebbe?
No..I hanno un _form/modificare/index/new/spettacolo ..E questo è venuto con la forma era in .. = form_for @post do | f | -if @ post.errors.any? #errorExplanation % h2 = "# {pluralize (@ post.errors.count," error ")} ha impedito il salvataggio di questo post:" % ul - @ post.errors.full_messages.each do | msg | % li = msg Ha bisogno di qualcos'altro? – Trip
Ma qualcosa di strano, mi viene in mente. Perché la validazione "funziona" immediatamente in Rails. Ho aggiornato come appaiono i miei modelli sopra. – Trip
OK. Modifica la tua domanda per mostrarci il codice del controller. –