Rails: «электронная почта уже занята» для каждого введенного мной письма - PullRequest
0 голосов
/ 09 января 2012

Обновление: Проверяя консоль, многие пользователи фактически заходят в базу данных, даже когда появляется это сообщение об ошибке!

Еще более странно, вы заметите, что у меня есть перенаправление на root_path при успешном сохранении в базе данных. это никогда не идет туда. Это журнал. Если он сохраняет, иногда он переходит к действию show, но на самом деле возникает момент, когда браузер кажется застрявшим, все закрывается, и мне нужно щелкнуть в поле адреса, чтобы протолкнуть его до show.index.html.

Redirected to http://localhost:3000root_path
Completed 302 Found in 34ms
[2012-01-08 18:08:27] ERROR URI::InvalidURIError: the scheme http does not accept registry part: localhost:3000root_path (or bad hostname?)
    /Users/mel/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/uri/generic.rb:746:in `rescue in merge'
    /Users/me/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/uri/generic.rb:743:in `merge'
    /Users/me/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/webrick/httpresponse.rb:163:in `setup_header'
    /Users/me/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/webrick/httpresponse.rb:101:in `send_response'
    /Users/me/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/webrick/httpserver.rb:86:in `run'
    /Users/me/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/webrick/server.rb:183:in `block in start_thread'

Оригинальный вопрос:

Я создаю форму для пользователей, чтобы зарегистрироваться, чтобы выиграть iPad. У него есть два поля, адрес электронной почты и имя. Когда я отправляю форму, я получаю одно и то же сообщение об ошибке, независимо от того, какой адрес электронной почты я ввожу

1 error prohibited this from being saved:

There were problems with the following fields:

    Email has already been taken

Странно, когда я отлаживаю params, он показывает любой новый адрес электронной почты, который я ввожу.

utf8: "\xE2\x9C\x93"
authenticity_token: UgkHFLBfKYM2tZ11u6ItWvPS5XeTIMhFuJDwvhgqe30=
ipad: !map:ActiveSupport::HashWithIndifferentAccess 
  name: Amy
  email: franz@gmail.com
commit: Sign up
action: create
controller: ipads

У кого-нибудь есть идеи? Я немного новичок ...

Я просто добавляю этот код в блог Enki, который делаю на Rails ...

У меня есть эта проверка на моей модели ipad.rb (обратите внимание, у меня был столбец для адреса Twitter в миграции, который я просто игнорирую в форме)

attr_accessible :name, :email, :twitter

validates :name, :presence => true,
         :length   => { :maximum => 50 }
validates :email, :presence => true,
                  :uniqueness => true

Это мой ipads_controller.rb

class IpadsController < ApplicationController

  def new
    @ipad = Ipad.new
    @title = "iPad Contest"
  end

  def create
    @ipad = Ipad.new(params[:ipad])
    if @ipad.save
      redirect_to 'root_path'
    else
      @title = "Poo"
      render 'new'
    end
  end


end

Это мой new.html.erb

<h1>Win an iPad</h1>
<%= @title %>

<h1>Sign up for iPad</h1>

<%= form_for(@ipad) do |f| %>
<%= render 'shared/errror_messages' %>
  <div class="field">
    <%= f.label :name %><br />
    <%= f.text_field :name %>
  </div>
  <div class="field">
    <%= f.label :email %><br />
    <%= f.text_field :email %>
  </div>

  <div class="actions">
    <%= f.submit "Sign up" %>
  </div>
<% end %>


<%= debug params %> 

1 Ответ

0 голосов
/ 09 января 2012

Исправлено использование redirect_to root_path вместо redirect_to 'root_path'. Нуб ошибка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...