Я пытаюсь создать метод в декораторе драпировки, который будет выдавать form_for. У меня есть форма, которую я использую для поиска записей в представлении индекса, и у меня есть десятки ресурсов, поэтому я действительно хочу сохранить эту логику в одном месте, если это возможно (декоратор приложений). Моя проблема в том, что я понятия не имею, как сделать form_for в декораторе. Я столкнулся с некоторыми вариантами использования concat и capture, чтобы попытаться выполнить это, но безуспешно. Все, что я смог получить, это пара моих div для отображения (не как html, а как обычный текст). Любые идеи о том, как я могу это сделать? Это код, который у меня есть:
def crud_index_search(search_obj)
h.concat "<div id='basic_search' style='display:none;'>"
search_form_for search_obj do |f|
h.concat '<div class="input-append">'
f.text_field :name_or_description_cont, :placeholder => 'Quick search ...', :id => 'search'
h.concat "<button class='btn'><i class='icon-search'></i></button>"
h.concat '</div>'
link_to 'Advanced Search', '#', :id => 'advanced_search_btn', :class => 'pull-right'
end
h.concat '</div>'
h.concat "<div id='advanced_search' style='display:none;'>"
search_form_for search_obj do |f|
f.condition_fields do |c|
h.concat render "crud/partials/condition_fields", :f => c
end
h.concat "<p>#{ link_to_add_fields 'Add Conditions', f, :condition }</p>"
f.submit 'Search'
h.concat "#{link_to 'Basic Search', '#', :id => 'basic_search_btn', :class => 'pull-right'}"
end
h.concat '</div>'
end
а на мой взгляд...
<%= @categories.crud_index_search @search %>
Любая помощь будет принята с благодарностью!
К вашему сведению, я уже поместил это в партиал, и это работает, однако мне нужно будет добавить к этому более сложную логику, которая будет различаться для каждого ресурса, поэтому парциал не идеален для меня.
Спасибо