HAML语法问题

3
为什么这不是 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查看回溯。


错误与 Haml 无关,纯粹是 Ruby 的问题。 - Art Shayderov
3个回答

2

尝试使用:place_id => @place.id 如果您使用@place而不是@place.id,可能会出现错误。


1

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

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


1
首先检查对象的位置并将其更正为类似以下内容: = form_tag(media_path(:place_id => @place) , :multipart => true) do 参考代码如下: = form_tag(:url => media_path(:object_id =>@object),:html => {:class=> "form"} ) do

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接