HAML form_tag下拉菜单出现问题

时间:2011-02-26 22:46:23

标签: haml

%h2 Your "followers":

- form_tag twitter_path do |f|
  = f.select{:name => "dropdown"}
    - for follower in @followers
      %option{:value => follower['id']}= h follower['name']

  = f.submit_tag "Who leaves comments?"

如何正确格式化此HAML?它返回一个语法错误。

1 个答案:

答案 0 :(得分:1)

您在Ruby代码中使用HAML语法:

= f.select{:name => "dropdown"}

大括号{被解释为Ruby块的开头(如array.map { ... }中所示),因为HAML中=-前缀之后的所有内容都被评估为Ruby代码。

此外,您在使用form_for方法时使用form_tag语法(请参阅this question)。 form_tag方法不提供表单对象f。 您应该使用FormTagHelper中的select_tag方法,以及FormOptionsHelper method

- form_tag twitter_path do
  = select_tag "dropdown", options_from_collection_for_select(@followers, "id", "name")
  = submit_tag "Who leaves comments?"