/ / Errno :: ENOENT /そのようなファイルまたはディレクトリ - ruby​​、sinatra

Errno :: ENOENT /そのようなファイルやディレクトリ - ruby​​、sinatra

私は現在シンシアのアプリと少し問題がある私の仕事に取り組んでいます。

私はindex.erbをロードしようとしていますが、sinatraはindex.erbを見つけることができません。

ここに私のapp.rbがあります

require "rubygems"
require "sinatra"

module Registration
class HelloWorldApp < Sinatra::Base
get "/" do
erb :index
end
end
end

これは私のコード階層です。

ここに画像の説明を入力

それはディレクトリを探し続けます:Sinatra-Intro / app / views / index.erb 私の見解はSinatra-Intro / views / index.erbです

回答:

回答№1は0

アプリケーションインスタンスを設定する必要があります。次のように動作します。

require "rubygems"
require "sinatra"

module Registration
class HelloWorldApp < Sinatra::Base
configure do
set :public_folder  , File.expand_path("../public", __FILE__)
set :views          , File.expand_path("../views", __FILE__)
set :root           , File.dirname(__FILE__)
set :show_exceptions, development?

# Optional: Load from external file
#YAML.load_file("path/to/config.yml").each do |k, v|
#  set(k.to_sym, v)
#end
end

get "/" do
erb :index
end
end
end

次に:

bundle exec rackup

回答№2の場合は0

ビューの設定でデフォルトの場所を変更することができます。このような:

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