![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
エラー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の使用方法を学ぶべく勉強しております。
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
こんにちは、
件の書籍の初版のサンプルプログラムをダウンロードしてみましたが
まずex2401ファイルの拡張子はrbでなくてerbですよね。
あと拡張子erbファイルを表示するサーバープログラムがex2405.rbにあります。
DocumentRootディレクトリにex2401.erbを置いた上で、ex2405.rbを実行して、ブラウザで表示させれば良いだけです。
というかその辺の話も書籍に記載されているのではないかと思うのですが……
私の環境(Windows, ruby 2.1.4)で動作確認しましたが、このソースなら#coding行の記述だけ変えればMACでも動作すると思います。
rubyのみで簡単にWebサーバが構築できるのですね、勉強になりました。
No.3
- 回答日時:
> Webrickとの連携方法は記述されており、これとの連携はうまくいきました。
Webrick は Web サーバーを自作するためのものです。一方、今回の質問の話は Web サーバーが表示するページの内容を Ruby で作ろうという話です。
もし誰かが車の操縦を習得するために車の製作方法を勉強したと言っても周りの人は「それ関係ないじゃん」というでしょう。上記はそれと同じような話です。
私は Windows しか使ってないので mac での Web サーバー事情を知らなかったため、何が使えるのか調べてみたところもう Apache が入ってるようです。
となると後はその Apache で Ruby を使えるようにすればいいのですが、……さて、私は Windows しか知らないのでどうすればいいかはわかりません。「その他(OS)」カテゴリでどうすればいいかを聞いてみることをお勧めします。
No.2
- 回答日時:
> このプログラムは「作りながら学ぶruby」という書籍を元に
> 同じソースを入力致しました。
ふむ、その書籍というのは久保秋真氏著の「作りながら学ぶ Ruby入門」でしょうか、以下のサポートページの。
http://rubybook.vacco.net/tabid/1143/language/ja …
だとしたら、目次をみる限り ERB について書いてあるのは「第6部 応用編2 Webアプリケーションにチャレンジしよう」のようですが、それならばご呈示のコードの内容は合点がいきます。
このコードはそれまでのようにターミナルから直接実行するのではなく、Web ブラウザ等から Web サーバーにアクセスして Web サーバーで粗利を実行した結果をブラウザに表示する Web アプリケーションというものです。
このとき Web サーバーはアクセスしてきたリクエストの内容を確認してそれが何らかのプログラムの実行結果を返すものであることを認識し、その Web サーバーが対応するプログラムを起動し、その結果をアクセスをよこした相手に返すものです。
というわけで、前の方には Web サーバーの構築方法が書いてあるようですが、あなたが使っているのは Mac ということでは本に書いてある通りにはいかないかもしれませんでしたでしょう。
というわけで、あなたの環境では Web サーバーはどうなさっていますか。
この回答への補足
webrickとの連携の際に使用したソースです。
参考までに記載致します。
下記でうまく接続は出来ました。
# coding: utf-8
require 'webrick'
config = {
:Port => 8099,
:DocumentRoot => '.',
}
s = WEBrick::HTTPServer.new ( config )
trap(:INT) do
s.shutdown
end
s.start
再度ご回答有難う御座います。
>「作りながら学ぶ Ruby入門」でしょうか
はい、仰る通りです。
>前の方には Web サーバーの構築方法が書いてあるようですが、あなたが使っているのは Mac ということでは本に書いてある通りには>いかないかもしれませんでしたでしょう。
Webrickとの連携方法は記述されており、これとの連携はうまくいきました。
http://docs.ruby-lang.org/ja/2.0.0/library/webri …
webサーバーはどうなさっていますか?
という回答にwebrickですがあっているのか私の勉強不足のためわかりませんが、他に必要な点は都度記載致します。
ちなみに、今回のプログラムがwebrick及び、webサーバーと連携してという記述はなかったのですが、確かに
ターミナルで直接実行するのではない気がします。
No.1
- 回答日時:
……はて、ERB は全く知らなかったんだが、るびまのこの記事のサンプルコードとだいぶ違うような……?
http://magazine.rubyist.net/?0017-BundledLibraries
ご指摘有難う御座います。
このプログラムは「作りながら学ぶruby」という書籍を元に
同じソースを入力致しました。
URL先を拝見し、確かに違うなと思いました。
上記書籍は少し古い書籍(2010年出版)のため、プログラムの仕方が変わったのでしょうか・・・
まずはURLのご共有有難うございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP php エラー 2 2022/10/23 16:43
- MySQL 参考書に従って入力したつもりでしたが、最後はエラーがでました。 1 2022/09/28 03:45
- オープンソース php-Laravelのインストールについて 1 2022/08/13 01:08
- Visual Basic(VBA) パーソナルXLSBのfuctionを呼び出すと「Functionが定義されていません」のエラーになる 2 2022/08/22 22:51
- MySQL 何にかが違うから エラーなんでしょうね! 2 2022/09/18 05:28
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- Visual Basic(VBA) Excelマクロでセルに値が入力されたら実行する 5 2023/08/06 11:03
- MySQL MySQLのテーブル作成でハイフン - は使用できないのでしょうか? 2 2022/10/21 16:50
- Visual Basic(VBA) データベースから絞り込んでデータを読み込み 1 2023/02/21 19:51
- Excel(エクセル) DATE関数で指定する「日」のセルが関数の場合の対処法 5 2022/09/14 15:46
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Pythonって何のソフトで動くん...
-
エクセルVBA、ステップモードと...
-
VB.NETでボタンのクリックイベ...
-
パソコンに何かが勝手にダウン...
-
Excel実行時エラー-2146959355?
-
EXCEL-VBAでコマンド...
-
VB.NETでDataTableにデータ追加...
-
VBA 作成中のプログラムを使っ...
-
eclipseで、「ポート番号が使用...
-
パソコンのスクリーンセーバー...
-
latexでのエラー
-
VBA中断モードの解除
-
バッチファイル DOS Windows200...
-
ランタイム関数とは何ですか?
-
VBA コントロールパネルの機能...
-
PC版のMinecraftが応答なしにな...
-
ペンタブがパソコンに繋がらな...
-
長時間PCを起動しているとポッ...
-
【急いでます!】pythonでキー...
-
起動したアプリケーションを最...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
パソコンに何かが勝手にダウン...
-
パソコンのスクリーンセーバー...
-
Excel実行時エラー-2146959355?
-
chatGPTで次々と質問をしていく...
-
PC版のMinecraftが応答なしにな...
-
VSコード
-
プログラミングについてです。...
-
latexでのエラー
-
VB.NETでボタンのクリックイベ...
-
管理者として実行を毎回すると...
-
エクセルVBA、ステップモードと...
-
Windows10 で青鬼を遊びたいの...
-
EXCEL-VBAでコマンド...
-
eclipseで、「ポート番号が使用...
-
プログラム実行中に強制停止さ...
-
VB.NETでDataTableにデータ追加...
-
pythonで他のアプリを操作する...
-
COBOLで集団項目から符号...
-
実行中のVBSをタスクバーに非表...
-
C言語再帰アルゴリズム
おすすめ情報