0

我有一个简单的 ruby​​/sinatra 应用程序,我正在尝试迁移到水晶/凯末尔。当用户提交表单选择时,sinatra 版本将参数作为哈希发布

{"category"=>["selection1", "selection2",..]}

然后我将选择传递给路径render index.erb中的视图。post但是在 kemal 中,我可以收集参数,但无法弄清楚如何在视图中访问它们。我不断收到错误undefined local variable or method

如何让视图访问提交的参数?

这是该post路线的 sinatra 代码:

post '/' do
  if params.values.flatten.length < 1
    flash[:warning] = "Please choose at least one AED"
    redirect '/'
  else
    params
    erb :index
  end
end

和相应的凯末尔代码:

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
4

1 回答 1

0

没有在所有使用的路由中定义变量保存参数index.ecr。一旦完成,它就起作用了。不过,有趣的是,我不必在某些路线中为 sinatra 定义它。

于 2018-02-09T02:25:37.120 回答