如何获取haml中的一系列复选框?
我在作为Sinatra服务器的一部分实现的例程中有一个名为@theModels的字符串数组。 这些模型是供用户选择的选项,由后端获取(想法是,随着新模型的添加,前端代码不应更改)。
我正在使用haml来渲染html。
如何枚举@theModels列表中的每个元素,使每个元素都是一个复选框? 如何获取用户选择的复选框?
我看到只是放
= @theModels
将给我@theModels中包含的字符串列表,但没有间距等,当然也不在复选框中。 我发现这个问题似乎很相似,但我的haml-fu还不够好,无法将其转化为我需要的东西。
更新:
这些是与文件上传相关的选项,现在代码如下所示:
%form{:action=>"/Upload",:method=>"post",:enctype=>"multipart/form-data"} - @theModelHash.each do |key,value| %br %input{:type=>"checkbox", :name=>"#{key}", :value=>1, :checked=>value} =key %input{:type=>"file",:name=>"file"} %input{:type=>"submit",:value=>"Upload"}
问题是,在每个选项上放置文件上传按钮,而不是在最后。 我最后只想要一个提交按钮; 我应该有两个表单,当按下“上传”按钮时,它们都会报告结果吗?
UPDATE2:
经过一段时间的思考,上面的内容可以修改为:
谢谢!
%form{:action=>"/Upload",:method=>"post",:enctype=>"multipart/form-data"} - @theModelHash.each do |key,value| %br %input{:type=>"checkbox", :name=>"#{key}", :value=>1, :checked=>value} =key %form{:action=>"/Upload",:method=>"post",:enctype=>"multipart/form-data"} %input{:type=>"file",:name=>"file"} %input{:type=>"submit",:value=>"Upload"}
这似乎做我想要的。
我认为你应该把内容作为哈希发送。 这将使您有机会在表单中设置初始值。
哈希@params将为您提供结果。
例如{“oranges”=>“1”}
#app.haml %form {:method =>'post',:action =>“/”} - @ models.each do | key,value | %BR %input {:type =>“checkbox”,:name =>“#{key}”,:value => 1,:checked => value} =键 %input {:type =>:submit,:value =>“Save”} #app.rb 要求'sinatra' 要求'haml' 得到'/'做 @models = {“oranges”=> true,“bananas”=> false} haml:app 结束 发帖'/'做 @ params.inspect 结束
您提供的链接链接到rails解决方案,其中您有一个函数返回正确的html。
您可以自己定义此function:
输入:键,值 输出:%input {:type =>“checkbox”,:name =>“#{key}”,:value => 1,:checked => value} def check_box(键,值) ... 结束 并用haml调用它 = check_box(键,值)
- Sinatra自定义SASS目录
- Rails button_to没有路由匹配{:action =>“complete”,:controller =>“dashboard”,:name =>“Order”}
- 背景图像不在Ruby on Rails应用程序上呈现
- 安装gem“joyride-rails”时的依赖性错误
- Rails Partial(Rails 3,HAML)任意慢
- 是否可以在Rails中使用视图助手生成的Haml缩进HTML?
- 在HAML模板中使用:coffescriptfilter的性能影响?
- Rails国际化:i18n查找嵌套的语言环境目录
- 如何在haml模板中的coffeescript中的ruby代码中使用本地或实例变量