1

ルビーとシナトラを初めて掘り下げて、アラン・ハリスとコンスタチン・ハーゼの「シナトラ・アップ・アンド・ランニング」を駆け抜けます。Ruby のバージョンを (RVM を使用して) 整理した後、拡張機能を作成するときに第 3 章まで問題は発生しませんでした。コードは次のとおりです (post_get.rb):

require 'sinatra/base'

module Sinatra
  module PostGet
    def post_get (route, &block)
      get (route, &block)
      post (route, &block)
    end
  end

  register PostGet
end

(post_get_test.rb) で使用:

require 'sinatra'
require './post_get'

post_get '/' do
        "Hello #{params[:names]}"
end

しかし、「ruby post_get_test.rb」を実行するたびに、すぐに次のランタイム エラーが発生します。

user@UbuntuOne:~/sinatra$ ruby post_get_test.rb 
/home/user/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require': /home/user/sinatra/post_get.rb:6: syntax error, unexpected ',', expecting ')' (SyntaxError)
      get (route, &block)
                 ^
/home/user/sinatra/post_get.rb:7: syntax error, unexpected ',', expecting ')'
      post (route, &block)
                  ^
/home/user/sinatra/post_get.rb:13: syntax error, unexpected $end, expecting keyword_end
    from /home/user/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
    from post_get_test.rb:2:in `<main>'

これを整理するためにどこから始めればよいかさえよくわかりません。これを解決するために誰かが私を正しい方向に向けることができますか?

ありがとう。

4

1 に答える 1