2017-06-27 4 views
0

私は複数のレイアウトを持つSinatraアプリを持っています.1つは管理パネル用、もう1つは公開用です。ビュー内でサブディレクトリに分割したい:sinatraのカスタムレイアウトの仕方

views/ 
views/layout.erb (for public) 
views/auth/ 
views/auth/layout.erb (for admin) 

私はエラーが発生しました。 config.ru:

require 'sinatra' 

get "/" do 
    erb :layout 
end 

get "/auth" do 
    erb :layout => :'auth/layout' 
end 

答えて

0

最初に、2番目の "erb"コールが間違っています。それを変更します。あなたはシナトラの「クラシックスタイル」、あなたはconfig.ruにすべきではない示したコードを使用したい場合は

erb :layout, :layout_options => { :views => 'views/auth' } 

。コードをconfig.ruから別のファイルに移動します(例: app.rb。第二の "ERB" コールを修正、app.rbは含まれています:

# app.rb 
require 'sinatra' 
get "/" do 
    erb :layout 
end  
get "/auth" do 
    erb :layout, :layout_options => { :views => 'views/auth' } 
end 

このようなファイル名を指定して実行して:ruby app.rbを。デフォルトでは、ポート4567のローカルサーバーを起動します。

URL http://localhost:4567http://localhost:4567/authが機能するようになりました。

layout.erbファイルを直接レンダリングしないでください。あなたの意見をラップするために使用されます。より多くの例についてはSinatra: Getting Startedをチェックしてください。

+0

私はまだエラーの仲間を得ます、 –

+0

正確に何のエラー?どのURLがエラーをトリガーしますか? – Geraldo

関連する問題