2017-06-21 8 views
0

So versuche ich habe mit dem form_for Format auf Schienen Validierungen auf Rubin zu verwendenDer Versuch, Validierungen zu verwenden, um mit lokalen Variablen

ich diesen gefolgt: https://stackoverflow.com/a/33048292/8054234

aber im den folgenden Fehler erhalten:

<%= pluralize(object.errors.count, "error") %> prevented the form from being saved: 

undefined method `errors' for :user:Symbol 

Irgendein idead, wie ich das machen/reparieren könnte?

edit1 hochgeladen vollständige Form Code:

<%= stylesheet_link_tag "users" %> 

<div class="jumbotron" 
    <div class="container"> 

    <h2>Signup</h2> 


<%= form_for :user, url: '/users' do |f| %> 
    <%= form_errors_for :user %> 
    Número de Empregado: <br> 
    <%= f.number_field :NumeroEmpregado %><br> 
    Primeiro e Último Nome: <br> 
    <%= f.text_field :nome %><br> 
    Password: <br> 
    <%= f.password_field :password %><br> 
    Confirmação Password: <br> 
    <%= f.password_field :password_confirmation %><br> 


    <%= f.submit "Submit" %> 

    </div> 
</div> 

<% end %> 
+0

Veröffentlichen Sie Ihre vollständige Codeform. – Pavan

+0

Fertig, bearbeitete Hauptfrage –

+0

Sie haben die Antwort @yzalavin ist richtig :) – Pavan

Antwort

0

EDITED

In Ihrem UsersController in new Aktion Update wie unten

class UsersController < ApplicationController 
    def new 
    @user = User.new 
    end 
end 

und in Ihrer views/users/_form.html.erb Dateiform machen den Code unten

<%= form_for(@user) do |f| %> 
    <% if @user.errors.any? %> 
    <div id="error_explanation"> 
    <h2><%= pluralize(@user.errors.count, "error") %> prohibited this user from being saved:</h2> 
    <ul> 
     <% @user.errors.full_messages.each do |message| %> 
     <li><%= message %></li> 
     <% end %> 
    </ul> 
    </div> 
    <% end %> 

    Número de Empregado: <br> 
    <%= f.number_field :NumeroEmpregado %><br> 

    Primeiro e Último Nome: <br> 
    <%= f.text_field :nome %><br> 

    Password: <br> 
    <%= f.password_field :password %><br> 

Confirmação Password: <br> 
<%= f.password_field :password_confirmation %><br> 

<%= f.submit "Submit" %> 

<% end %> 
+0

gibt mir diesen Fehler: 'undefined Methode 'Fehler' für Nil: NilClass' in dieser Zeile' <% if f.object.errors.any? %> ' –

+0

Diese Zeile wurde aktualisiert. <% = Pluralize (f.object.errors.count," error ")%>' – hgsongra

+0

Erhalten Sie immer noch denselben Fehler: | –

2

object muss eine Instanz eines Activerecord-Modell sein. Sie übergeben :user als ein Symbol.

Sie sollten eine Instanz von User übergeben. Wenn Sie eine Authentifizierungslogik verwenden, können Sie current_user an diese Methode übergeben.

UPD:

Der Fehler sagt, dass Ihr object nicht versteht Methode errors. :user ist ein Symbol. Es ist keine Variable, die Ihren Benutzer enthält. Daher implementiert es Methode errors nicht.

User ist ein Modell, das Verhalten von ActiveRecord erbt. Es bietet Methode errors. Zum Beispiel, object = User.create(params) wird funktionieren.

+0

Kannst du etwas weiter erklären? Ich bin ziemlich neu in RoR und ich verstehe nicht ganz, was ich tun soll, sorry –

+0

Ich habe aktualisiert. – yzalavin

Verwandte Themen