• 締切済み

エラー2401.rb:5: syntax erro

エラー2401.rb:5: syntax error, unexpected '<', expecting end-of-input <% require 'date' % >の原因がわかりません 2401.rbというプログラムを作成し、実行を致しました。 ---------------------------- # coding: utf-8 require'erb' <% require 'date' % > <h1>ERB Test Page.</h1> <p>今日の日付は: <%= Date.today %></p> ---------------------------- ターミナルで実行したのですが、 下記のエラーが発生しました。 2401.rb:5: syntax error, unexpected '<', expecting end-of-input <% require 'date' % > 何度見なおしても原因がわからなく困っております。 このエラーは何を指しているのかわかりますでしょうか? 宜しくお願いします。 必要な情報は都度教えて頂ければ、追記します。 尚、macで開発しております。 RubyのERBの使用方法を学ぶべく勉強しております。

  • Ruby
  • 回答数4
  • ありがとう数11

みんなの回答

  • siffon9
  • ベストアンサー率64% (136/211)
回答No.4

こんにちは、 件の書籍の初版のサンプルプログラムをダウンロードしてみましたが まずex2401ファイルの拡張子はrbでなくてerbですよね。 あと拡張子erbファイルを表示するサーバープログラムがex2405.rbにあります。 DocumentRootディレクトリにex2401.erbを置いた上で、ex2405.rbを実行して、ブラウザで表示させれば良いだけです。 というかその辺の話も書籍に記載されているのではないかと思うのですが…… 私の環境(Windows, ruby 2.1.4)で動作確認しましたが、このソースなら#coding行の記述だけ変えればMACでも動作すると思います。 rubyのみで簡単にWebサーバが構築できるのですね、勉強になりました。

  • hitomura
  • ベストアンサー率48% (325/664)
回答No.3

> Webrickとの連携方法は記述されており、これとの連携はうまくいきました。 Webrick は Web サーバーを自作するためのものです。一方、今回の質問の話は Web サーバーが表示するページの内容を Ruby で作ろうという話です。 もし誰かが車の操縦を習得するために車の製作方法を勉強したと言っても周りの人は「それ関係ないじゃん」というでしょう。上記はそれと同じような話です。 私は Windows しか使ってないので mac での Web サーバー事情を知らなかったため、何が使えるのか調べてみたところもう Apache が入ってるようです。 となると後はその Apache で Ruby を使えるようにすればいいのですが、……さて、私は Windows しか知らないのでどうすればいいかはわかりません。「その他(OS)」カテゴリでどうすればいいかを聞いてみることをお勧めします。

  • hitomura
  • ベストアンサー率48% (325/664)
回答No.2

> このプログラムは「作りながら学ぶruby」という書籍を元に > 同じソースを入力致しました。 ふむ、その書籍というのは久保秋真氏著の「作りながら学ぶ Ruby入門」でしょうか、以下のサポートページの。 http://rubybook.vacco.net/tabid/1143/language/ja-JP/Default.aspx だとしたら、目次をみる限り ERB について書いてあるのは「第6部 応用編2 Webアプリケーションにチャレンジしよう」のようですが、それならばご呈示のコードの内容は合点がいきます。 このコードはそれまでのようにターミナルから直接実行するのではなく、Web ブラウザ等から Web サーバーにアクセスして Web サーバーで粗利を実行した結果をブラウザに表示する Web アプリケーションというものです。 このとき Web サーバーはアクセスしてきたリクエストの内容を確認してそれが何らかのプログラムの実行結果を返すものであることを認識し、その Web サーバーが対応するプログラムを起動し、その結果をアクセスをよこした相手に返すものです。 というわけで、前の方には Web サーバーの構築方法が書いてあるようですが、あなたが使っているのは Mac ということでは本に書いてある通りにはいかないかもしれませんでしたでしょう。 というわけで、あなたの環境では Web サーバーはどうなさっていますか。

ryorrrrr
質問者

お礼

再度ご回答有難う御座います。 >「作りながら学ぶ Ruby入門」でしょうか はい、仰る通りです。 >前の方には Web サーバーの構築方法が書いてあるようですが、あなたが使っているのは Mac ということでは本に書いてある通りには>いかないかもしれませんでしたでしょう。 Webrickとの連携方法は記述されており、これとの連携はうまくいきました。 http://docs.ruby-lang.org/ja/2.0.0/library/webrick.html webサーバーはどうなさっていますか? という回答にwebrickですがあっているのか私の勉強不足のためわかりませんが、他に必要な点は都度記載致します。 ちなみに、今回のプログラムがwebrick及び、webサーバーと連携してという記述はなかったのですが、確かに ターミナルで直接実行するのではない気がします。

ryorrrrr
質問者

補足

webrickとの連携の際に使用したソースです。 参考までに記載致します。 下記でうまく接続は出来ました。 # coding: utf-8 require 'webrick' config = { :Port => 8099, :DocumentRoot => '.', } s = WEBrick::HTTPServer.new ( config ) trap(:INT) do s.shutdown end s.start

  • hitomura
  • ベストアンサー率48% (325/664)
回答No.1

……はて、ERB は全く知らなかったんだが、るびまのこの記事のサンプルコードとだいぶ違うような……? http://magazine.rubyist.net/?0017-BundledLibraries

ryorrrrr
質問者

お礼

ご指摘有難う御座います。 このプログラムは「作りながら学ぶruby」という書籍を元に 同じソースを入力致しました。 URL先を拝見し、確かに違うなと思いました。 上記書籍は少し古い書籍(2010年出版)のため、プログラムの仕方が変わったのでしょうか・・・ まずはURLのご共有有難うございました。

関連するQ&A

  • Sinatra syntax error

    あるコードの一部なんですがエラーが出てしまいます。 どのように解決すればいいでしょうか よろしくお願いします。 a.rb:5: syntax error, unexpected ',', expecting tASSOC @defeat = {rock::scissors, paper::rock, scissors::paper} ^ a.rb:5: syntax error, unexpected '}', expecting '='

    • ベストアンサー
    • Ruby
  • engawa.rb:17: syntax error, unexpec

    engawa.rb:17: syntax error, unexpected tGVAR, expecting $end str1 = "縁側でお茶が飲みたい" と文字列に日本語を代入しただけでエラーが出るのですが、これはなぜなんでしょうか? よろしくお願いいたします。 環境のせいかもしれませんので書いておきます。 Linux,UTF-8,Ruby1.8です。

    • ベストアンサー
    • Ruby
  • エラー文の意味

    エラー文の意味 ご質問させていただきます。 Macからターミナルを使ってRubyを動かしているのですが、変数を含んだファイルを実行しようとすると、エラーが出てしまいます。 例えば、 a = 3 print "私はリンゴを", a, "個持っています。" というファイルをapple.rbという名前で保存し、ターミナルから ruby apple.rb で実行すると、以下のようなエラー文が出ます。 apple.rb:1: syntax error, unexpected tIDENTIFIER, expecting $end このエラーはどういう意味なのでしょうか? よろしくお願いします。

  • syntax error 一行で書くと

    複数行で記述してあった箇所を、試しに一行にしてみたら、syntax errorとなりました。 改行した方が見やすいとは思うのですが、一行で書くときは、どうやればよいのでしょうか。 ■正常に動く class Foo __def print3 ____yield(1,2) __end end foo=Foo.new foo.print3{|x,y //この部分を一行にしてみたかったのですが、 __print x,"\n" __print y,"\n" } ■エラーとなる class Foo __def print3 (略) foo.print3{|x,y|print x,"\n" print y,"\n"} //←この行を直したいのですが、 (irb): syntax error, unexpected tIDENTIFIER, expecting '}'

    • ベストアンサー
    • Ruby
  • REXMLについて教えてください2

    http://japan.internet.com/developer/20070703/27.htmlの doc.elements.each("guitars/make/model/color") { |element| puts element.text } を実行したら C:/DOCUME~1/.....: syntax error, unexpected '|', expecting '}' { |element| puts element.text } ^ C:/DOCUME~1/.......: syntax error, unexpected tIDENTIFIER, expecting kDO or '{' or '(' { |element| puts element.text } ^ C:/DOCUME~1/Hideyuki/LOCALS~1/Temp/rb22C.tmp:7: syntax error, unexpected '}', expecting $end Complete(1) とエラーが出ます。 サイトのプログラムそのままなのですが、何か勘違いしてますか? Rubyのバージョンとかが関係あるのでしょうか?

    • ベストアンサー
    • Ruby
  • configureでsyntax errorとなる

    さくらインターネットのレンタルサーバー(スタンダードプラン)でWEBサイトを構築しようとtidyのインストールで試行錯誤しています。 OSは FreeBSD 8.1-RELEASE-p13 amd64 です。 http://www.ebisawa.co.jp/wiki/index.php?WP%2FHTMLTidy#m55edd07 のサイトを参考にtidyのインストールに挑戦していたのですが、 # wget http://tidy.sourceforge.net/src/tidy_src.tgz # tar -xzvf tidy_src.tgz # cd tidy # sh ./build/gnuauto/setup.sh # ./configure # make # make install のconfigureをしようとしたら、syntax errorが出てきて先に進むことができません。 % ./configure % ./configure: 2410: Syntax error: word unexpected (expecting ")") とのエラーが出てきてしまいます。 FreeBSDに詳しくないので原因がなかなか特定できません。 よろしくお願いいたします。

  • PHPのエラー「Unexpected character ...」「syntax error, unexpected ...」について

    PHP Warning: Unexpected character in input: ''' (ASCII=39) state=1 in /home/***/***.php on line 25 PHP Parse error: syntax error, unexpected '<' in /home/***/***.php on line 26 という2行のエラーが表示されました。 まったく明快な答えは探せませんでした。 もしも少しでも手がかりになるような情報がありましたら教えて下さい。 お願いします。

    • 締切済み
    • PHP
  • rubyのプログラム

    プログラミング初心者です。参考書のソースコードをそのままコピペして実行したのですが、エラーが出てしまいます。どこが間違っているのかご指摘いただけると助かります。 ソースコード #encoding: cp932 # うるう年かどうかによって時間数は変わります puts 24*365 puts " (#{24*366}になる場合もある) " 実行結果 >ruby calc.rb calc.rb:4: invalid multibyte char (Windows-31J) calc.rb:4: syntax error, unexpected tIDENTIFIER, expecting $end puts "(#{24*366}になる場合もある)" ^ >Exit code: 1 パソコンOS Windows7 rubyのバージョン 1.92

    • ベストアンサー
    • Ruby
  • Parse error: syntax error

    Parse error: syntax error, unexpected $end in ...on line 19について wordpressの方で、functions.phpに書いたものが、前に一度機能していたはずのソースが他の記述を加えたりしていたらエラーになってしまいました。今は下記だけです。どこが間違っているのでしょうか?前と同じソースをコピペしているので、原因がわかりません。 <?php function replaceImagePath($arg) { $content = str_replace('"images/', '"' . get_bloginfo('template_directory') . '/images/', $arg); return $content; } add_filter('the_content', 'replaceImagePath');

    • 締切済み
    • PHP
  • macでのhomebrewのインストールについて

    MacOSX10.8.5にてhomebrewをインストールしたいです。 調べたところ ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)" とターミナル上でコマンドを打てばインストール可能とのことでしたので、実行してみました。 ところが、 $ ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)" -e:4: syntax error, unexpected '<' <!DOCTYPE html> ^ -e:5: syntax error, unexpected '<' <html> ^ -e:7: syntax error, unexpected '<' <meta charset='utf-8'> ^ -e:8: syntax error, unexpected '<' <meta http-equiv="X-UA-Compatible" content="IE=edge"> ^ -e:8: syntax error, unexpected tIDENTIFIER, expecting $end <meta http-equiv="X-UA-Compatible" content="IE=edge"> というエラーが生じてしまいました。 どなたか解決方法をご存知でしたら、教えてください。 よろしくお願いします。