2

私はこのチュートリアルに従おうとしています:http:
//net.tutsplus.com/tutorials/ruby/singing-with-sinatra/

「ビューのマークアップを別のファイルに分割できる「<strong>ビューファイル」も使用します。」に固執しました。

basics.rbファイルは正常に実行されています。

そして私のファイルは次のように保存されます:

Desktop/RubyForm/basics.rb
Desktop/RubyForm/view/form.erb 

しかし、今私が行くと http://localhost:9393/form、私は次のように迎えられます:

Errno::EIO at /form 
Input/output error - <STDERR> file: lint.rb location: write line: 398
sinatra.error   
Errno::ENOENT: No such file or directory - 
  /Users/HelenasMac/Desktop/views/form.erb



アップデート!:
ruby basics.rbを実行し、に移動した直後にフォームが機能するようになりましたhttp://localhost:4567/form。ただし、「shotgun basics.rb」を実行した後、に移動する必要が http://localhost:9393/formあります。その場合、フォームが表示されません。

私は何が間違っているのですか?免責事項:ルビーと端末の使用にメガ初心者。

前もって感謝します!

4

2 に答える 2

1

shotgun仕事に取り掛からない場合、 Sinatra をリロードする新しい推奨方法はrerun.

使用するには:

> gem install rerun
> cd /Users/HelenasMac/Desktop/RubyForm
> rerun ruby basics.rb
于 2013-01-16T21:06:09.460 に答える
0

Views ディレクトリの明示的な設定

でビューにインライン テンプレートを使用している場合を除きenable :inline_templates、既定値が機能しない場合は、テンプレート ディレクトリを明示的に定義する必要がある場合があります。ドキュメントでは、ビュー ディレクトリを次のように設定する方法について説明しています。

:views - テンプレート ディレクトリの表示

ビュー テンプレートが配置されているディレクトリを指定する文字列。デフォルトでは、これはアプリケーションのルート ディレクトリ内の「views」という名前のディレクトリであると想定されます (:root 設定を参照)。アプリケーションのルート内で別のディレクトリ名を指定する最良の方法は、:root 設定を参照する遅延値を使用することです。

set :views, Proc.new { File.join(root, "templates") }

また、明示的に:rootを設定する必要がある場合もあり、現在の作業ディレクトリから:root:viewsの両方が意味をなすことを確認してください。

于 2013-01-16T20:26:03.353 に答える