1

我是 Ruby 和 Haml 的新手,所以我在这个问题上绕圈子。谷歌搜索并没有给我任何我可以使用的示例代码。

我可以使用select_tag并从表中填充列表。但我不知道如何使用简单的静态项目列表。有人可以将其更改为适当的 Haml 吗?注意:源表是“电子邮件”,字段是“状态”。

= 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 >
4

2 回答 2

4

您正在使用标签助手而不是面向对象的助手。采用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

于 2012-08-14T00:10:55.847 回答
1

得到它的工作!我需要使用“Select”而不是“Select_tag”。:-)

= select(:email, :status,{ "canceled" => "canceled", "pending" => "pending", "success"=>"success"})

于 2012-08-14T00:09:52.960 回答