現在、オライリー本の『入門Sinatra』で学習しています。
p.168-175でコードを入力しディレクトリを設計したのですが上手くいきません。
エラーコード:config.ru:4:in <main>': undefined method
map' for main:Object (NoMethodError)
Did you mean? tap
と出ているためタイトルのように考えました。
Ruby
1# config.ru 2 3require 'sinatra/base' 4Dir.glob('./{helpers,controllers}/*.rb').each { |file| require file } 5 6map('/example') { run ExampleController } 7map('/') { run ApplicationController }
Ruby
1# application_controller.rb 2 3class ApplicationController < Sinatra::Base 4 helpers ApplicationHelper 5 6 set :views, File.expand_path('../../views', __FILE__) 7 8 configure :production, :development do 9 enable :logging 10 end 11 12 not_found do 13 title 'Not Found!' 14 erb :not_found 15 end 16end
Ruby
1# example_controller.rb 2 3class ExampleController < ApplicationController 4 get '/' do 5 title "Example Page" 6 erb :example 7 end 8end
Ruby
1# application_helper.rb 2 3module ApplicationHelper 4 def title(value = nil) 5 @title = value if value 6 @title ? "Controller Demo - #{@title}" : "Controller Demo" 7 end 8end
HTML
1# layout.erb 2 3<html> 4 <head> 5 <title><%= title %></title> 6 </head> 7 <body> 8 <%= yield %> 9 </body> 10</html>
HTML
1# example.erb 2 3<h1>This is an example page!</h1>
HTML
1#not_found.erb 2 3Page does not exist! Check out the <a href='/example'>example page</a>.
あなたの回答
tips
プレビュー