QA@IT

rubyのフレームワークsinatraについて

2372 PV

retrieve.erbでデータベースの内容を検索し、その結果をresult.erbに出力しようとかんがえています。ruby on railsのようにcontrollerに render :action => 'result.html.erb'のように書きたいのですが、どのようにしたらよいのでしょか。よろしくお願いします。
以下にソースをのせておきます。非常に困っているのでよろしくお願いします。

coding:utf-8

require 'active_record'
require 'sinatra'
require 'erb'

ActiveRecord::Base.configurations = YAML.load_file('database.yml')
ActiveRecord::Base.establish_connection('development')

class Bookinfo < ActiveRecord::Base
end

get '/retrieve' do
erb :retrieve
end

post '/retrieve' do
@bookinfos = Bookinfo.where( " title like ? OR author like ? ", "%#{params[:id]}%", "%#{params[:id]}%" )
redirect to action 'retrieve.erb'
end

get '/result' do
erb :result
end

get '/' do
@bookinfos = Bookinfo.all
erb :index
end

post '/new' do
bookinfo = Bookinfo.new
bookinfo.id = params[:id]
bookinfo.title = params[:title]
bookinfo.author = params[:author]
bookinfo.page = params[:page]
bookinfo.date_available = params[:date_available]
bookinfo.save
redirect '/'
end

delete '/del' do
bookinfo = Bookinfo.find(params[:id])
bookinfo.destroy
redirect '/'
end

回答

POST で /retrieve にアクセスした時に、 views/result.erb の内容を表示したいということであれば、

post '/retrieve' do
  ...
  erb :result
end

と書けばいいと思います。
質問の内容を勘違いしてたらすいません。

編集 履歴 (0)
  • sinatraは日本語での情報が少なくて本当に助かりました。ありがとうございます。 -
ウォッチ

この質問への回答やコメントをメールでお知らせします。