Ich habe eine sehr einfache App. Diese App muss nur prüfen, ob ein Benutzername existiert. Wenn dies der Fall ist, leiten Sie sie an den Benutzer weiter. Wenn es nicht existiert, erstellen Sie einen neuen Benutzer gemäß dem eingegebenen Benutzernamen und leiten Sie ihn an den neuen Benutzer weiter. Neue Benutzer werden nie aus irgendeinem Grund erstellt, aber die Zeile find_or_create funktioniert in der rails-Konsole. Hier ist der Code:find_or_create funktioniert nicht in Rails
user_controller.rb
def new
@user = User.new
end
def create
@u = User.find_or_create_by_name(params[:name])
redirect_to @u
end
new.html.erb
<% form_for(@user) do |f| %>
<%= f.error_messages %>
<p>
<%= f.label :Username %><br />
<%= f.text_field :name %>
</p>
<p>
<%= f.submit 'Submit' %>
</p>
<% end %>
Jede Hilfe würde geschätzt.
Sind Sie Fehler in Ihrer Anwendung zu bekommen? Wenn der Benutzer nicht erstellt wird, sollte bei dieser Umleitung ein Fehler auftreten. Wenn dies der Fall ist, sollte beim Speichern in der Datenbank ein Fehler auftreten. Stellen Sie außerdem sicher, dass Ihre Anwendung mit diesem Code ausgeführt wird; Ein Neustart wird alle Zweifel zunichte machen. – coreyward
Ein Name ist alles, was ein Benutzer erstellt werden muss? keine anderen Validierungen? – tokland