【问题标题】:What do I need to do to get the blog to work in rails 4.2?我需要做什么才能让博客在 rails 4.2 中工作?
【发布时间】:2015-03-30 04:27:37
【问题描述】:

我刚刚安装了 rails 4.2 。我找到了制作快速博客的教程:https://www.reinteractive.net/posts/32-ruby-on-rails-3-2-blog-in-15-minutes-step-by-step。但是,它使用 rails 3.2 。我已经完成了它所说的一切,直到rake db:migrate,但是,当我运行服务器时,我只是得到一个错误页面。自 3.2 以来发生了什么变化?我现在该怎么做才能做同样的事情?

错误: 'ExecJS::ProgramError in Posts#index' TypeError:对象不支持此属性或方法 (在 C:/Ruby193/lib/ruby/gems/1.9.1/gems/turbolinks-2.5.3/lib/assets/javascripts/turbolinks.js.coffee)

编辑:

顺便说一句,我什至无法遵循官方的 ruby​​ on rails 教程,因为当我运行服务器时,将根目录更改为 root 'welcome#index' 后,我只是得到一个找不到页面的错误。

是否有关于 rails 4.2 的教程?

【问题讨论】:

  • 请注意,您必须运行 rake db:migrate 而不是 rails db:migrate,您遇到的错误是什么?
  • 对不起,这是我所做的 - 我会更正帖子。我也会编辑错误。
  • 我注意到的东西 - null:false 在我的 t.timestamps 的末尾,但在教程中没有。为什么会自动生成?
  • 哦,看来您使用的是 Windows,这个问题肯定与操作系统有关。我用 mac 抱歉帮不上忙。
  • Rails 3 和 4 差别很大。我的建议——要么坚持你的教程推荐,要么找一个不同的教程。 Michael Hartl's book 描述了一个使用 Rails 4 实现的类似 Twitter 的应用程序。是的,在 Windows 上开发 Rails 很乏味,所以这本书推荐云环境,我个人推荐使用 Ubuntu 风格(Xubuntu,或者可能是 Linux Mint),可能在虚拟机。

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


【解决方案1】:

这应该可以解决您的问题:
gem 'therubyracer', '~> 0.12.1' 添加到您的 gemfile 中(或取消注释 - 应该已经存在...)
然后运行bundle install

希望这会有所帮助。

【讨论】:

  • gem 'therubyracer', platforms: :ruby 我没有注释。然后我迁移了数据库,运行了服务器,也有同样的问题。我应该像你说的那样添加它吗?与 0.12.1?
  • 你也运行了 bundle install ,对吧?您也可以按照我的建议尝试代码,是的。但总是在之后捆绑安装
  • 现在我在使用 bundle install (0.12.1) 时遇到很多错误。我尝试从 gemfile 源中的 https 中删除 s,上次有效,但仍然存在错误。我将在我原来的问题中发布错误。
  • 好的,那我猜你遇到了和这里描述和解决的问题一样的问题:stackoverflow.com/questions/12520456/…
  • 我用 https 进行了尝试,它说它“无法指定路径”,并要求我在继续之前安装 libv8。这是以前发生的事情,当我安装它时,他们只是不断要求我安装更多。
【解决方案2】:

我在 Windows 上遇到了完全相同的 ExecJS::ProgramError。 KeithP 在这里提供了唯一真正有帮助的解决方案:Rails-4, ExecJS::ProgramError in Pages#welcome,即,

回滚到 gem 'coffee-script-source', '1.8.0'。

【讨论】:

    【解决方案3】:

    这里有一些信息:ExecJS::RuntimeError in Users#index (RoR)

    当我研究这个问题时,我发现在 CoffeeScript 中有一个签入,我认为它破坏了 Windows(在某些版本的 cscript 运行时):https://github.com/jashkenas/coffeescript/blob/28c07d30cbd2add7ee762c7d532b2c9c972e441a/lib/coffee-script/parser.js

    在第 563 行,它正在执行 Object create(lexer),但失败并出现错误 ActionView::Template::Error (TypeError: Object doesn't support this property or method

    回滚到 CoffeeScript 1.8.0(在此更改之前)可以解决此问题。正如其他人在这个答案和其他地方所说的那样,使用不同的运行时也可以解决这个问题。

    要回滚到 CoffeeScript 1.8.0,请将其添加到您的 gemfile:

    gem 'coffee-script-source', '1.8.0'

    然后运行这些命令:

    gem update 'coffee-script-source'
    bundle update 'coffee-script-source'
    

    重启你的服务器,它应该可以工作了。

    【讨论】:

      猜你喜欢
      • 2012-07-13
      • 1970-01-01
      • 2019-11-15
      • 2017-12-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多