ActiveRecord :: RecordNotFound /找不到'id'= 1的Maker

时间:2015-05-31 17:44:21

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-4 activerecord

当我在终端中执行rake db:reset时,我可能已经删除了我的用户信息(:maker_id,:name和:password),所以现在转到'localhost:3000''/'会给我这个错误:< / p>

  

PageController#home

中的ActiveRecord :: RecordNotFound      

找不到'id'= 1

的制作者      

提取的来源(第7行):

     
    

6 def current_user

         

7 @current_user || = Maker.find(session [:maker_id])if session [:maker_id]

         

8结束

         

9 helper_method:current_user

  

我的应用程序控制器有:

bars

我的网页控制器空了

class ApplicationController < ActionController::Base

  protect_from_forgery with: :exception

  def current_user
    @current_user ||= Maker.find(session[:maker_id]) if session[:maker_id]
  end
  helper_method :current_user

  def authorize
    redirect_to '/' unless current_user
  end

end

我的网页home.html.erb视图有:

def home
end

我的布局application.html.erb视图有:

<div class='text-center'>
    <h1>Welcome to venture</h1>

    <br><br>

    <%= link_to "Signup", '/signup', class: 'btn btn-success' %> or
    <%= link_to "Login", '/login', class: 'btn btn-primary' %>
</div>

它曾经在db:reset之前运行db:drop db:setup我相信。通常我会通过注册页面创建用户,但现在我无法到达那里。

感谢任何见解。

2 个答案:

答案 0 :(得分:1)

这些记录不再可用 - 执行db:drop时,所有记录都已被删除。该操作不能是undone,目前唯一的选择是手动或自动恢复数据库,如果您有权访问其备份。

答案 1 :(得分:0)

运行rake db:setup以重新创建数据库。然后创建一个新用户。

结帐this answer以查看各种rake db命令之间的差异