проблема синтаксиса haml - PullRequest
3 голосов
/ 23 марта 2012

почему это неверный синтаксис

= 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 для backtrace. Используйте --trace для backtrace.

Ответы [ 3 ]

2 голосов
/ 23 марта 2012

try: place_id => @ place.id Ошибка также может быть, если вы используете @place вместо @ place.id

1 голос
/ 23 апреля 2012

На самом деле оба не заметили, что вы используете хэш-синтаксис ruby ​​1.9.2 вместе со старым стилем синтаксиса 1.8.7. Я предполагаю, что вы пытаетесь использовать эту форму с приложением, работающим на 1.8.7, поэтому оно дает вам ошибку компиляции. Если вы используете ruby-1.9.2, вы не получите эту ошибку компиляции. В ruby-1.9.2 вы можете объявить свой хеш в стиле Javascript json. т.е. {имя пользователя: 'Джон'}

Так что вы либо используете ruby-1.9.2, либо меняете (place_id: @place) на (: place_id => @place)

1 голос
/ 23 марта 2012

прежде всего проверьте объект на месте и исправьте его как-то как

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

Ссылка как код

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

...