【发布时间】:2017-05-16 17:09:22
【问题描述】:
我在 Heroku 上部署了我的 rails 应用程序,它运行良好。我在用户表中有一个“名称”列。然后,在本地机器上,我将“名称”列重命名为“用户名”。它在我的机器上仍然可以正常工作。
以前,我的视图文件中的代码是:-
<%= @user.name %>
然后,我将其更改为:-
<%= @user.username %>
我再次将更改推送到 heroku,但应用遇到 500 错误。当我运行 heroku 日志时,出现以下错误。
ActionView::Template::Error (undefined method `username' for #<User:0x007fac4558c1b0>)
如何解决此错误?
提前致谢!
更新 1:-
用户模型中的代码是:-
class User < ActiveRecord::Base
#some codes
#..........
validates :username, presence: true, length: { maximum: 50 },
uniqueness: { case_sensitive: false }
has_secure_password
validates :password, presence: true, length: { minimum: 6 }
#.......
#some codes
end
【问题讨论】:
-
你刷新heroku端的数据库了吗?模型期望什么?
-
否。怎么办?
-
您是通过 rake 迁移还是以其他方式更改架构?您要么需要在 heroku 上运行相同的迁移,要么推送新的数据库。
-
我生成了迁移文件并重命名了该列。然后,我在推送到 heroku 后运行 Heroku run rake db:migrate。现在,我该怎么办?请帮忙。
-
我也相应地更改了模型。
标签: ruby-on-rails heroku