1

我有一个接收用户电子邮件的字段

<%= form_for(resource, :as => resource_name, :url => registration_path(resource_name)) do |f| %>

    <div class = "field">Email: 
      <%= f.email_field :email, :class => "email" %></div>

<% end %>

每次我加载页面时,电子邮件文本框已经'插入了一个,用户必须删除它才能正确插入他们的电子邮件。

当我期望使用 chrome 的元素时。我可以看到电子邮件字段的值为 is "'"。我该如何删除它?提前致谢

编辑:

用户.rb

class User < ActiveRecord::Base
  # Include default devise modules. Others available are:
  # :token_authenticatable, :confirmable,
  # :lockable, :timeoutable and :omniauthable
  devise :database_authenticatable, :registerable,
         :recoverable, :rememberable, :trackable, :validatable

  # Setup accessible (or protected) attributes for your model
  attr_accessible :email, :password, :password_confirmation, :remember_me, :username, :firstname, :lastname

  # attr_accessible :title, :body
end
4

1 回答 1

1

您应该在form_for @user上面有一个(或类似的)行。局部变量由您的控制器填充。查看控制器代码,如果有填充“'”的内容或查看模型,如果有默认值,则将电子邮件字段设置为“'”。

要更改用户数据的架构定义,请创建一个新的数据库迁移:

rails generate migration no_default_for_user_email

这将在 /db/migrate 中创建一个新文件,其中包含具有两个函数的迁移定义:

def up
    change_column :users, 'email', :string, default: ""
end

def down
    change_column :users, 'email', :string, default: "'"
end

这应该会更新您的数据库定义。

于 2012-09-11T11:23:38.147 回答