вспомогательный вид с haml и simple_form - PullRequest
1 голос
/ 09 декабря 2011

Я попытался вставить simple_form помощник в помощник вида (извините за каламбур) и использовать его с Haml :: Helpers , пример:

def front_box_search_html(form_object)
    my_custom_wrapper() do
        non_haml do
            simple_form_for( form_object ||= Form::Search.new, :url => front_search_path ) do |f|
                haml_concat f.input :phrase
                haml_concat f.button :submit
            end
        end
    end
end

но этот код отображается неправильно: появляется весь HTML-код (различные оболочки HTML-тегов, входные данные и метки), но без тега . Как вы можете видеть, это результат (тестирование с RSpec, но в браузере тоже самое):

Failure/Error: helper.capture_haml{ helper.front_box_search_html }.should have_xpath("/html/body/div[@*]/form")
expected following text to match xpath /html/body/div[@*]/form:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html>
 <body>
  <div class= "boxSearch box">
   <p class = "sum">search title</p>
   <div class = "row string optional">
    <label class = "string optional" for="form_search_phrase"> word</label>
    <input class="string optional" id="form_search_phrase" name="form_search[phrase]" type="text">
   </div>
   <div class = "row buttons last">
    <input class = "button" id="form_search_submit" name="commit" type="submit" value="search">
   </div>
  </div>
 </body>
</html>

Если честно, я не совсем понял, как использовать различные методы Haml :: Helpers, про документацию плохо.


my env: rails 3.0.7, haml 3.1.4, simple_form 1.5.2

1 Ответ

0 голосов
/ 17 февраля 2012

Просто предположение, но помощник 'simple_form_for' также выводит html, так что я думаю, что это должно быть:

haml_concat simple_form_for( form_object ||= Form::Search.new, :url => front_search_path ) do |f|
  haml_concat f.input :phrase
  haml_concat f.button :submit
end
...