我已将用户名添加到设计验证设置中,由于某种原因,它没有将用户名插入数据库。数据库在用户名字段中输入NULL。
我已经包含了迁移代码,表单以及显示它发送实际用户名的生产日志。
这是我做的:
所以我添加了一个迁移来添加用户名,这是成功的:
class AddUsernameToUsers < ActiveRecord::Migration
def self.up
add_column :users, :username, :string
end
def self.down
remove_column :users, :username
end
end
然后我编辑了app / views / devise / registrations / new.html.erb以包含用户名的文本字段:
<h2>Sign up</h2>
<%= form_for(resource, :as => resource_name, :url => registration_path(resource_name)) do |f| %>
<%= devise_error_messages! %>
<p><%= f.label :username %><br />
<%= f.text_field :username %></p>
<p><%= f.label :email %><br />
<%= f.text_field :email %></p>
<p><%= f.label :password %><br />
<%= f.password_field :password %></p>
<p><%= f.label :password_confirmation %><br />
<%= f.password_field :password_confirmation %></p>
<p><%= f.submit "Sign up" %></p>
<% end %>
<%= render :partial => "devise/shared/links" %>
如果有帮助,这是生产日志:
Started POST "/users" for 136.152.162.173 at Wed Feb 23 12:46:12 -0800 2011
Processing by Devise::RegistrationsController#create as HTML
Parameters: {"commit"=>"Sign up", "authenticity_token"=>"K8m6Em7IqSTFQG8aAYE4faUMsL2E46uNAllNTcsEF08=", "utf8"=>"?~\~S", "user"=>{"password_confirmation"=>"[FILTERED]", "username"=>"pyramation", "password"=>"[FILTERED]", "email"=>"dan@email.com"}}
Rendered devise/mailer/confirmation_instructions.html.erb (1.1ms)
非常感谢任何帮助!
答案 0 :(得分:4)
您是否在用户模型中添加了:username到您的attr_accessible列表? e.g:
attr_accessible :email, :password, :password_confirmation, :username