2015-05-04 6 views
2
= simple_form_for @pin, html: { multipart: true} do |f| 
- if @pin.errors.any? 
    #errors 
     %h2 
     = pluralize(@pin.errors.count, "errors") 
     prevented this Pin from saving 
     %ul 
      - @pin.errors.full_messages.each do |msg| 
      %li= msg 
.form-group 
    = f.input :title, input_html: { class: 'form-control' } 

.form-group 
    = f.input :description, input_html:{ class: 'form-control' }  

= f.button :submit, class: "btn btn-primary"  

кто-то может сказать мне, почему это returing мне ошибку, которая говорит ниже рельсовРубин Haml неожиданная ошибка концовка

/Users/frankchen/проект/pin_board/приложение/просмотров/контакты/_form. html.haml: 17: синтаксическая ошибка, неожиданное ключевое слово_цену, ожидающее keyword_end ...: Util.html_safe (_erbout); обеспечить; @haml_buffer = @haml_buffer .... ... ^/Пользователи/frankchen/project/pin_board/app /views/pins/_form.html.haml:20: синтаксическая ошибка, неожиданный конец ввода, ожидающий keyword_end

ответ

3

Если это HAML, это более чем вероятно проблема с отступом. Я не могу совпасть номер строки, которую вы предоставили, так как мы только видим фрагмент кода, но я предполагаю, что отступы между этими двумя линиями от:

- @pin.errors.full_messages.each do |msg| 
%li= msg 
+0

это на самом деле весь код, я понятия не имею, почему ошибки разные линии – frankcrest

1

Не могу точно сказать, если отступы кода перепутались, когда вы вставили в свой код, или это то, как вы на самом деле его имеете, но да, у вас есть несколько ошибочных выступов. Например:

= simple_form_for @pin, html: { multipart: true} do |f| 
- if @pin.errors 

Это - if должно быть отступом на 2 места. так что он находится в области простой формы над ним. То же самое для вас ul и его li s в each

+0

да я думаю, что перепутались, когда я вставил его в StackOverflow, ваш код имеет тот же identation – frankcrest

+0

Это потому, что я скопировал код , Вы искали проблемы с отступом в вашем фактическом коде зрения? – DiegoSalazar

+0

эй человек, я понял, похоже, что haml позволяет только идентификацию пробелов для кодов для запуска? я изменил свои возвышенные настройки для вкладок, чтобы вернуть только 2 пробела для идентификации – frankcrest

0

В моем случае, это сработало, когда я удаляю отступы между %ul и - @pin.errors.full_messages.each do |msg|. Я все еще не знаю причины, потому что - @pin.errors.full_messages.each do |msg| должен находиться внутри тега @ul.

%ul 
- @pin.errors.full_messages.each do |msg| 
    %li= msg 
Смежные вопросы