在凯马尔使用params

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在凯马尔使用params相关的知识,希望对你有一定的参考价值。

我有一个简单的ruby / sinatra应用程序我试图迁移到crystal / kemal。当用户提交表单选择时,sinatra版本将params作为哈希值发布

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

然后我通过render index.erbpost路线中将选择传递给视图。但是在凯马尔,我可以收集参数,但无法弄清楚如何在视图中访问它们。我一直得到错误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

和相应的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
答案

没有在使用index.ecr的所有路线中定义保持参数的变量。一旦完成它就有效了。有趣的是,我没有必要在sinatra的某些路线中定义它。

以上是关于在凯马尔使用params的主要内容,如果未能解决你的问题,请参考以下文章

javascript常用代码片段

已解决在react+ts中 atnd 用 upload 组件报错Failed to execute ‘readAsArrayBuffer,param 1 is notof type Blob(代码片段

已解决在react+ts中 atnd 用 upload 组件报错Failed to execute ‘readAsArrayBuffer,param 1 is notof type Blob(代码片段

[原创]java WEB学习笔记61:Struts2学习之路--通用标签 property,uri,param,set,push,if-else,itertor,sort,date,a标签等(代码片段

PHP常用代码片段

phpstorm 实用快捷键 和 注释