haml语法问题

时间:2012-03-23 05:45:38

标签: ruby-on-rails haml

为什么这不是haml有效语法

= form_tag(media_path(place_id: @place) , :multipart => true)  do
  = label_tag :image , "Place image"
  = file_field_tag :image
  = submit_tag "submit new comment"

第46行的异常:编译错误     /.../show.html.haml:46:语法错误,意外':',期待')'     ... form_tag(media_path(place_id:@place),:multipart => true)...                               ^     使用--trace进行回溯。     使用--trace进行回溯。

3 个答案:

答案 0 :(得分:2)

尝试:place_id => @ place.id 如果您使用@place代替@ place.id

,也可能出错

答案 1 :(得分:1)

首先检查地点的对象并将其更正为

= form_tag(media_path(:place_id => @place) , :multipart => true) do

像代码一样参考

= form_tag(:url => media_path(:object_id =>@object),:html => {:class=> "form"} ) do

答案 2 :(得分:1)

实际上两者都没有注意到你使用ruby 1.9.2哈希语法和旧的1.8.7语法风格。我假设您正在尝试使用此表单与1.8.7上运行的应用程序,这就是为什么它给你编译错误。如果使用ruby-1.9.2,则不会出现编译错误。在ruby-1.9.2中,您可以使用Javascript json样式声明哈希值。即{用户名:'John'}

所以要么使用ruby-1.9.2,要么将(place_id:@place)更改为(:place_id => @place)