Почему возникает синтаксическая ошибка для form_for с вложенными ресурсами?

0

У меня есть form_for form helper:

  = form_for([@search, @search_request], url: {action: @search_form[:search_action]}, method: @search_form[:http_method], remote: true, html: {id: @search_form[:html_id]}, data: {type: "json"}) do |search_current_form|
    - @search_params.each do |search_param|
      = render partial: "search/search_param", locals: {search_param: search_param, search_form: @search_form, search_current_form: search_current_form, search_request: @search_request}

частично в search/search_param:

.input-group
  span.input-group-addon
    = search_current_form.check_box(:search_request, :#{"enable_" + search_param[:name]}, {class: "param_enabled_checkbox"}, true, false)
  = search_current_form.text_field(:search_request, :#{"param_" + search_param[:name]}, {class: "param_value_input"})

Но я получаю сообщение об ошибке:

SyntaxError
Showing ./app/views/search/_search_param.html.slim where line #19 raised:

./app/views/search/_search_param.html.slim:19: syntax error, unexpected ';', expecting tSTRING_CONTENT or tSTRING_DBEG or tSTRING_DVAR or tSTRING_END
; @output_buffer.safe_concat((...
 ^
./app/views/search/_search_param.html.slim:20: syntax error, unexpected ';', expecting tSTRING_CONTENT or tSTRING_DBEG or tSTRING_DVAR or tSTRING_END
; @output_buffer.safe_concat(("</div></td></tr>")); @output_buffer
 ^
./app/views/search/_search_param.html.slim:21: syntax error, unexpected keyword_ensure, expecting ')'
./app/views/search/_search_param.html.slim:23: syntax error, unexpected keyword_end, expecting ')'

В чем может быть проблема? Неверное количество аргументов в:

= search_form.text_field(:search_request, :#{"param_" + search_param[:name]}, {class: "param_value_input"})

? Эта строка красная в "Извлеченном источнике (вокруг строки # 19):"

Теги:
syntax-error
slim-lang
form-helpers

1 ответ

1

Попробуй использовать:

:"enable_#{search_param[:name]}"
  • 0
    уже было это раньше, поэтому после изменения я получаю еще одну ошибку, но даже в строке до: undefined method `merge' for :enable_user_id:Symbol
  • 0
    и если я делаю так, как у меня - ошибка возникает только в следующей строке.
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню