带有常量的haml select_tag

时间:2012-08-13 23:54:01

标签: ruby-on-rails ruby haml html-select

我是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 >

2 个答案:

答案 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;“成功”})