Ruby on rails 现场死亡&引用;所需操作:Rails安全漏洞“;

Ruby on rails 现场死亡&引用;所需操作:Rails安全漏洞“;,ruby-on-rails,ruby-on-rails-3,git,github,refinerycms,Ruby On Rails,Ruby On Rails 3,Git,Github,Refinerycms,我的网站目前已经死了,所以我无法解释这对我来说有多紧迫 情境:几天前,我收到一封来自Heroku的电子邮件“所需操作:Rails安全漏洞”,建议我将Rails更新到版本“3.2.11”。在我完成了电子邮件中的所有步骤后,我试图打开我的网站。当我看到我无法打开我的网站时,我非常惊讶。我的网站是用RefineryCMS制作的 有没有可能使用git将我的站点恢复到以前一切正常的时间点 当我在本地运行站点时,会出现以下错误: ActiveRecord::RecordNotFound in Refiner

我的网站目前已经死了,所以我无法解释这对我来说有多紧迫

情境:几天前,我收到一封来自Heroku的电子邮件“所需操作:Rails安全漏洞”,建议我将Rails更新到版本“3.2.11”。在我完成了电子邮件中的所有步骤后,我试图打开我的网站。当我看到我无法打开我的网站时,我非常惊讶。我的网站是用
RefineryCMS
制作的

有没有可能使用git将我的站点恢复到以前一切正常的时间点

当我在本地运行站点时,会出现以下错误:

ActiveRecord::RecordNotFound in Refinery::PagesController#主页

找不到id为torte za rodendan的炼油厂::页面

app/views/stranice/naslovnica/_-favorite_-products.html.erb:7:in`` app_-views_-stranice_-naslovnica_-favorite_-products_-html_-erb_4156700835010289094_66485000'

app/views/refinery/pages/home.html.erb:16:in``应用程序视图炼油厂页面主页html\uerb\uuu 24824419061129865361\u67


是的,我们都收到了Heroku的邮件

由于您的站点以前使用git进行过版本控制,因此您可以通过以下方法撤消上次提交

然而,我不确定你是否真的需要做上述工作。你只需要确保你的heroku应用程序运行在rails 3.2.11上——这是一个非常严重的安全问题,可能heroku甚至会阻止升级速度不够快的站点

遵循以下步骤:

  • 运行测试并确保一切正常
  • 通过git打开一个新分支(
    git checkout-b new\u rails
  • 在您的文件中更改Rails 3.2.11
  • 在environment.rb中将RAILS_GEM_版本更改为'3.2.11'
  • 运行
    捆绑更新rails
  • 运行测试,看看是否一切正常
  • 如果没有,则通过执行git checkout master(git checkout master)返回到旧分支;通过执行
    git branch-D new_rails
仅在新分支上执行此操作可确保不会发生任何故障


如果以后仍然出现错误,请告诉我们heroku日志中的内容。

好的,是的。这就是版本控制系统的全部要点。请帮助。我是新来的在你升级之前你的网站是不是已经用Git版本连接了?是的,在更新之前它已经用Git版本连接了你当然可以用Git回滚。一个更好的问题是,你应该吗?这种特殊的Rails漏洞相当严重。一个更好的方法是运行测试套件并在本地框中检查站点,然后如果您无法找出在那里看到的错误,请询问有关这些错误的问题。你需要你的站点运行最新的Rails版本。谢谢你的回答。当我试图在本地运行该站点时,我发现了一个错误,我将其放在上面的问题描述中。感谢所有人的帮助!该网站是活跃的。这对我有帮助:必须安装gem-friendly_-id,才能让一切正常工作。最后一个问题是:我如何证明我的高效版本正在新版本的rails上运行?@Adam本地升级并运行测试(这就是为什么广泛的测试覆盖率如此重要的原因之一)应该足够了。但是,您当然也可以在本地运行生产环境,以查看它是否适合您自己。首先,运行
RAILS\u ENV=production rake db:create
,它将创建生产数据库,然后运行
RAILS s s-e production
,它将在生产模式下启动服务器。