2012-09-11 67 views
1

我有一个字段,需要在用户的电子邮件Ruby on Rails的:当页面加载

<%= 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 %> 

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

当我期望使用chrome的元素。我可以看到电子邮件字段的值为"'"。我如何删除它?在此先感谢

编辑:

User.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 
+1

您是否已经通过应用程序中的任何javascript查看了插入值到输入字段的任何情况? – jordanandree

回答

1

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

要更改用户数据的架构定义创建一个新的数据库mirgration:

rails generate migration no_default_for_user_email 

这将创建一个新的文件/数据库/与迁移定义迁移具有两个功能:

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

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

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

+0

我正在使用Devise的宝石。据我所知,我的应用程序的设计方没有控制器。我会发布模型给你看看 – Jazz

+1

@ JamesMcL13看看/db/schema.rb文件。应该有一个用户表的定义。 –

+0

我发现这行't.string“email”,:default =>“'”,:null => false'。 当我移除数据库时,它会再次出现''' – Jazz