Crystal/kemal に移行しようとしている単純な ruby/sinatra アプリがあります。ユーザーがフォームの選択を送信すると、sinatra バージョンはパラメーターをハッシュとして POST します
{"category"=>["selection1", "selection2",..]}
次に、選択内容をルートrender index.erb
でビューに渡します。post
ただし、ケマルでは、パラメーターを収集できますが、ビューでそれらにアクセスする方法がわかりません。エラーが発生し続けますundefined local variable or method
。
ビューが送信されたパラメータにアクセスできるようにするにはどうすればよいですか?
post
ルートのシナトラ コードは次のとおりです。
post '/' do
if params.values.flatten.length < 1
flash[:warning] = "Please choose at least one AED"
redirect '/'
else
params
erb :index
end
end
および対応するkemalコード:
post "/" do |env|
selected_drugs = env.params.body.fetch_all("drugs")
if selected_drugs.size < 1
env.flash["warning"] = "Please choose at least one AED"
render "src/views/index.ecr"
else
selected_drugs
render "src/views/index.ecr"
end
end
Kemal.run