我使用Rails 4和Devise gem进行授权。 我在设备的注册表单中添加了其他字段,名为' username' 它在这里:
enter code here
<div><%= f.label :username %><br />
<%= f.text_field :username, autofocus: true %></div>
我是这样做的:https://stackoverflow.com/a/20667360/3826643
本地工作正常。我可以注册,在我的用户面板中,我可以看到以sugn up形式输入的用户名。
点击&#39;注册&#34;在heroku上我给了&#34;我们很抱歉,但出了点问题。&#34;
Heroku记录在这里:
2014-07-11T10:02:24.514630+00:00 heroku[router]: at=info method=GET path="/users/sign_up" host=test-app12.herokuapp.com request_id=32d968fd-2154-4a02-ba8a-878bb7f85a02 fwd="78.8.153.110" dyno=web.1 connect=5 service=378 status=500 bytes=857
2014-07-11T10:02:24.509598+00:00 app[web.1]: Rendered devise/registrations/new.html.erb within layouts/application (73.9ms)
2014-07-11T10:02:24.515127+00:00 app[web.1]:
2014-07-11T10:02:24.515132+00:00 app[web.1]: ActionView::Template::Error (undefined method `username' for #<User:0x007f2b303b0378>):
2014-07-11T10:02:24.515134+00:00 app[web.1]: 8: <%= f.email_field :email, autofocus: true %></div>
2014-07-11T10:02:24.515136+00:00 app[web.1]: 9:
2014-07-11T10:02:24.515138+00:00 app[web.1]: 10: <div><%= f.label :username %><br />
2014-07-11T10:02:24.515140+00:00 app[web.1]: 11: <%= f.text_field :username, autofocus: true %></div>
2014-07-11T10:02:24.515142+00:00 app[web.1]: 12:
2014-07-11T10:02:24.515145+00:00 app[web.1]: 13: <div><%= f.label :password %><br />
2014-07-11T10:02:24.515147+00:00 app[web.1]: 14: <%= f.password_field :password, autocomplete: "off" %></div>
2014-07-11T10:02:24.515150+00:00 app[web.1]: app/views/devise/registrations/new.html.erb:11:in `block in _app_views_devise_registrations_new_html_erb__2151626084088518473_69911734787000'
2014-07-11T10:02:24.515152+00:00 app[web.1]: app/views/devise/registrations/new.html.erb:4:in `_app_views_devise_registrations_new_html_erb__2151626084088518473_69911734787000'
2014-07-11T10:02:24.515154+00:00 app[web.1]:
2014-07-11T10:02:24.515156+00:00 app[web.1]:
2014-07-11T10:02:24.510327+00:00 app[web.1]: Completed 500 Internal Server Error in 195ms
我还没有完成任何数据库迁移和类似的事情。
对我来说,有点连线,一切都可以在本地,但在Heroku上,它会给出操作视图错误。
当然,在我使用附加字段&#39;用户名&#39;从git推出新视图和控制器之前它在Heroku上运行良好。
答案 0 :(得分:0)
你需要做heroku run rake db:migrate
所以当应用程序启动时,ActiveRecord初始化会获取模型的属性,并且可供表单助手使用。
答案 1 :(得分:0)
问题解决了。 heroku上存在数据库问题。表中的列用户名丢失了,因为迁移文件丢失了,我没有注意到它。感谢@John Beynon提出的建议问题是数据库