【问题标题】:Michael Hartl Rails Tutorial Chapter 3 RSpec Syntax ErrorsMichael Hartl Rails 教程第 3 章 RSpec 语法错误
【发布时间】:2014-07-26 17:25:29
【问题描述】:

我正在尝试学习 Hartl 的 Rails 教程。在完成第 3.2.1 章时,我在尝试时遇到了以下两个错误

bundle exec rspec spec/requests/static_pages_spec.rb

两者都是语法错误:

I:/Programs/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/rspec-core-3.0.3/lib/rspec/core/configuration.rb:1057:in `load' : C:/Users/Anastasia/RubymineProjects/sample_app/spec/requests/static_pages_spec.rb:3: 语法错误,意外的keyword_do_block (SyntaxError)

C:/Users/Anastasia/RubymineProjects/sample_app/spec/requests/static_pages_spec.rb:12:语法错误,意外keyword_end,期待$end

我已经查看了这两个文件中的每一个,但没有看到实际的语法错误:

static_pages_spec.rb 包含以下代码:

require 'spec_helper'

RSpec.describe "StaticPages", do

  describe "Home page" do

    it "should have the content 'Sample App'" do
      visit '/static_pages/home'
      expect(page).to have_content('Sample App')
    end
  end
end

所有“做”似乎都有一个匹配的“结束”。

spec_helper.rb 包含以下代码:

RSpec.configure do |config|

  config.include Capybara: :DSL

end

再次,“做”和“结束”似乎匹配。

注意:我对编码非常是新手。我以前的经验是 html/css 相关的。在阅读本教程时,我目前正在免费试用 Ruby Mine,我不禁想知道是否最好只使用像 SublimeText 这样的文本编辑器重新开始,因为使用 RM 意味着我m 不仅努力学习 Ruby 和 Rails,还学习 RM。 RM 有一些我非常喜欢的地方(我天生就是一个视觉型的人,所以拥有更具视觉吸引力的东西很好,但我也喜欢 gem 安装界面,它不仅可以轻松安装 gem,还可以阅读他们的文档)。使用 RM 的另一个缺点是教程和 RM 捆绑的版本(Ruby 1.9.3 与 2.0.0 等)之间的版本差异,这导致我选择在 gemfiles 中省略版本列表以避免产生奇怪的冲突(我认为这将是一个问题可能是错误的,但在我看来这是合乎逻辑的)。

Capybara gem 已安装并位于 gemfile 中,所以我不认为这是问题所在(但可能是错误的)。我确定我只是错过了一些非常简单的东西,但我一辈子都看不到它是什么。

任何建议或帮助将不胜感激!

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 rspec railstutorial.org


    【解决方案1】:

    您的代码中有错字

     RSpec.describe "StaticPages", do
    

    这一行不应该有那个逗号

    RSpec.describe "StaticPages" do
    

    【讨论】:

    • 祝福你!这确实是一件简单的事情。但是,删除逗号修复了这两个错误,但现在我有了一个新错误:I:/Programs/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/rspec-core-3.0.3/ lib/rspec/core/configuration.rb:1017:in `
    • 在我脑海中,我不确定错误可能是什么。我的建议是尝试隔离代码的哪一行调用了错误,并仔细检查您的代码是否与 Hartl 的教程相匹配。您甚至可以从 Ruby Mine 提供的调试工具中受益。如果一切都失败了,请在此处提出一个新问题:发布您的代码和错误消息,有人可能会帮助您。最重要的是不要放弃!使用新的语言/框架进行编码可能会让人望而生畏,但练习、练习、练习,事情将开始变得更加……直观。
    【解决方案2】:

    如果结尾匹配,则几乎可以肯定是逗号。 “编程就像写一本书,除非你在第 126 页多了一个逗号,否则整个事情就没有意义了。”

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多