我正在尝试在表单中添加字段名,我在视图模板中更改了用户模型,更新了表( rails g add_firstname_to用户名:字符串迁移)。但是我仍然得到#的异常未定义方法`firstname'。我缺少什么?我的文件看起来像这样
视图
<h2>Sign up</h2>
<%= form_for(resource_name, resource, :url => registration_path(resource_name)) do |f| %>
<%= f.error_messages %>
<table>
<tr><td><label>First name</label></td>
<td><%= f.text_field :firstname %></td></tr>
<tr><td><label>Email</label></td>
<td><%= f.text_field :email %></td></tr>
<tr><td><%= f.label :password %></td>
<td><%= f.password_field :password %></td></tr>
<tr><td><%= f.label :password_confirmation %></td>
<td><%= f.password_field :password_confirmation %></td></tr>
</table>
<p><%= f.submit "Sign up" %></p>
<% end %>
<%= render :partial => "devise/shared/links" %>
用户模型类
class User < ActiveRecord::Base
# Include default devise modules. Others available are:
# :token_authenticatable, :lockable, :timeoutable and :activatable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
# Setup accessible (or protected) attributes for your model
attr_accessible :email, :password, :password_confirmation,:firstname
end
答案 0 :(得分:1)
这个一步一步tutorial 会告诉你一切。 :)
查看您的代码,提出两条建议:
你说你跑了rails g add_firstname_to user firstname:string migration
我希望这是一个错字,但你应该使用add_firstname_to_users
- 注意用户的 s 。
正如第一条评论所示,您是否运行了rake db:migrate
?