我是Ruby和Haml的新手,所以我就此围绕这个问题。谷歌搜索没有给我任何我可以使用的示例代码。
我可以使用select_tag
并填充表格中的列表。但我无法弄清楚如何使用简单的静态项目列表。有人可以改变这个适当的Haml吗?注意:源表是'email',字段是'status'。
= select_tag(:email, :status, {"canceled", "pending", "success"})
我希望得到一个下拉列表,其中包含“已取消,待定,成功”的项目。
我得到的错误是odd number list for Hash._hamlout.format_script...
更新:我发现了一些似乎是我需要的示例代码,它没有出现任何错误,但是下拉框是空的:
= select_tag(:email, :status,{ "canceled" => "1", "pending" => "2", "success"=>"3"})
以下是它产生的HTML:
<select female="2" male="1" id="email" name="email">status </select >
答案 0 :(得分:3)
您正在使用标记帮助程序而不是面向对象的帮助程序。使用select
我还建议使用options_for_select
。像这样:
= select(:email, :status, options_for_select([["canceled", "1"], ["pending", "2"], ["success", "3"]]))
请参阅: http://apidock.com/rails/ActionView/Helpers/FormOptionsHelper/select
http://apidock.com/rails/ActionView/Helpers/FormOptionsHelper/options_for_select
答案 1 :(得分:1)
搞定了!我需要使用“选择”而不是“选择标签”。 : - )
=选择(:电子邮件,:状态,{“已取消”=&gt;“已取消”,“待定”=&gt;“待定”,“成功”=&gt;“成功”})