在推送到生产之后,使用Authlogic为#<UserSession获取未定义的方法`username':没有提供凭证>

0 methods production ruby-on-rails undefined authlogic

我们从来没有让这个应用程序在生产中运行.应用程序在开发中运行得很好.我确保所有rake任务都是最新的,并为用户和所有人在所有论坛上发布的所有其他内容设置了acts_as_authentic.服务器已多次退回.所有URL上每次都会出现此错误.

详情如下:

 NoMethodError in User_sessions#new
Run Code Online (Sandbox Code Playgroud)

显示第6行引发的app/views/user_sessions/new.html.erb:

undefined method `username' for #<UserSession: no credentials provided>

Extracted source (around line #6):

3: <% form_for @user_session, :url => user_session_path do |f| %>
4:   <%= f.error_messages %>
5:   <%= f.label :username %><br />
6:   <%= f.text_field :username %><br />
7:   <br />
8:   <%= f.label :password %><br />
9:   <%= f.password_field :password %><br />
Run Code Online (Sandbox Code Playgroud)

所以我走到了绳子的尽头.我读了很多Authlogic的赞美,但我花了几个小时试图让它一步一步地工作.我们必须启动这台服务器,但我们所做的一切都不会让这个错误消失.我们正在认真考虑现在虚拟化开发环境,以便用户可以完成某些工作.

有人有主意吗?

kle*_*lew 5

您是否尝试在生产中使用与开发中相同的数据库?

  • 可能您没有在生产环境中运行迁移.尝试用旧数据库"rake db:migrate RAILS_ENV = production". (2认同)

oma*_*oma 5

哈,我觉得同样愚蠢.必须重新启动服务器!我在heroku设置了一个临时服务器,然后做了很棒的heroku db:push.我也一直收到这个错误

(ActionView :: TemplateError(#UserSession的未定义方法'用户名':未提供凭据>)

你得到一个空的数据库(或没有迁移),但我发出后运行它heroku restart.无论如何,当我碰到这个帖子时,我也不妨在这里发表观察.干杯!