Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails管理员在开发中工作,而不是Heroku_Ruby On Rails_Heroku - Fatal编程技术网

Ruby on rails Rails管理员在开发中工作,而不是Heroku

Ruby on rails Rails管理员在开发中工作,而不是Heroku,ruby-on-rails,heroku,Ruby On Rails,Heroku,我正在开发一个包含Rails管理员和CanCan的应用程序。 我只有一个users表,没有admin表。 用户表有一个名为admin的布尔属性 Rails Admin在开发中运行良好,但当我尝试在Heroku上访问它时,我得到: Started GET "/admin" for 70.34.8.244 at 2012-02-21 20:32:31 +0000 ActiveRecord::StatementInvalid (PG::Error: ERROR: relat

我正在开发一个包含Rails管理员和CanCan的应用程序。 我只有一个users表,没有admin表。 用户表有一个名为admin的布尔属性

Rails Admin在开发中运行良好,但当我尝试在Heroku上访问它时,我得到:

        Started GET "/admin" for 70.34.8.244 at 2012-02-21 20:32:31 +0000

    ActiveRecord::StatementInvalid (PG::Error: ERROR:  relation "admins" does not exist
                SELECT a.attname, format_type(a.atttypid, a.atttypmod), d.adsrc, a.attnotnull
                  FROM pg_attribute a LEFT JOIN pg_attrdef d
                     ON a.attrelid = d.adrelid AND a.attnum = d.adnum
                 WHERE a.attrelid = '"admins"'::regclass
                   AND a.attnum > 0 AND NOT a.attisdropped
                 ORDER BY a.attnum
    ):



 cache: [GET /admin] miss
有什么想法吗

谢谢检查表:

  • 确保您记得在Heroku中迁移数据库

  • 显示支持的控制器代码
    /admin

  • 对我来说,危险信号是它正在寻找“管理员”而不是“管理员”作为列名。可能是一个简单的打字错误


  • 我删除了一个文件,到目前为止,我从未使用过
    git rm
    命令。

    所以,Heroku仍然有那个文件。

    我也面临着同样的问题。我甚至尝试了heroku db:push以查看模式是否正确迁移,但仍然存在错误(仅适用于/admin链接)。看起来rails_admin gem中存在一些问题

    在互联网上搜索,我们似乎需要预编译这些资产。也许这就是导致错误的原因。我会尽力让你知道的

    更新:是的,它解决了问题。您需要在本地运行下面的命令来预编译您的资产,然后执行git提交并推送到heroku。这应该可以解决问题。 rake资产:预编译

    git add -A
    
    git commit -am "Whatever Your Comment"
    
    git push -u origin master
    
    git push heroku master
    
    您将看到您的应用程序的/admin链接现在运行良好


    如果这解决了您的问题,请将其标记为答案。

    您是否使用了rake db:migrate?是-但我将重试$heroku run rake db:migrate我的项目的当前版本不包含任何管理控制器。Rails管理员的初始值设定项有:`config.current_user_method{current_user}自动生成#在这里设置管理员名称(可选的第二个数组元素将以漂亮的RailsAdmin红色出现©config.main_app_name=['Amerequest',Admin']#或者对于动态名称:#config.main_app u name=Proc.new{controller |[Rails.application.engine_name.titleize,controller.params['action'].titleize]}和routes.rb有:mount RailsAdmin::engine=>'/ame',:as=>'Rails_admin'`Ari,对我来说,它只是从git中删除文件。但是,感谢您的信息。rake资产:预编译可能会变得混乱(将所有资产文件放入项目中)所以我尽量避免这种情况。要让rails_admin在heroku上工作而不在本地预编译资产,请在应用程序中放置以下行。rb:
    #在预编译资产之前防止初始化应用程序(heroku所需)config.assets.initialize_on_precompile=false
    #添加rails管理员资产(必需)config.assets.precompile+=['rails\u admin/rails\u admin.css','rails\u admin/rails\u admin.js']