1

Ich benutze Rails 4.2, aber zusammen mit der Rails 5.0 Dokumentation auf Partials, versuchen, eine Suche teilweise zu erstellen. http://guides.rubyonrails.org/layouts_and_rendering.html#using-partialsErgeben in Rails Partials

Ich bekomme die Schaltfläche Suchen, so dass die gemeinsame partielle Rendern ist, aber es scheint nicht zu dem aufrufenden Block zurückgeben. Ich bekomme das Label oder das Suchfeld nicht. Habe ich etwas Dummes gemacht, oder funktioniert das nicht in Rails 4.2? Scheint so, als müsste das einfach Ruby sein.

Ich habe festgestellt, dass dieses Beispiel nicht in der Dokumentation für 4.2 enthalten ist. http://guides.rubyonrails.org/v4.2/layouts_and_rendering.html#using-partials

shared/_search_filters.html.erb

<div class="search"> 
    <%= search_form_for @q, html: { class: 'form-inline'} do |f| %> 
    <div class="form-group"> 
     <%= yield f %> 
    </div> 
    <%= f.submit 'Search', class: 'btn btn-default', role: 'button' %> 
    <% end %> 
</div> <!-- /.search --> 

index.html.erb

<%= render 'shared/search_filters', search: @q do |f| %> 
    <%= f.label :search, 'Search (optional)', class: 'control-label' %> 
    <%= f.search_field :name_or_description_cont, 
        class: 'form-control', 
        placeholder: 'Search (optional)' %> 
<% end %> 
+0

Ihr Render funktioniert - Sie sehen den Knopf. Beide Schienen 4.2 und 5.0 verwenden <% = yield f%>. Ich denke, das Problem ist mit diesem Abschnitt "<% = search_form_for @q, html: {class: 'form-inline'} do | f |%>" Verwenden Sie ransack? Verwenden Sie deshalb form_for nicht und verwenden Sie search_form_for? – user3456978

+0

ja, wir verwenden ransack. Alles, was ich in der Formulargruppe hinzufüge, rendert auf der Seite, aber die Ausbeute funktioniert nicht – tsunami719

Antwort

0

Versuchen Sie dies in Ihrem Index ersetzen:

render layout: 'shared/search_filters', locals: { search: @q } do |f| 
+0

Danke Pedro. Leider habe ich dieses Projekt vor ein paar Monaten verlassen, so dass ich nicht sehen kann, was meine Lösung für dieses Problem tatsächlich war. :) Aber vielleicht hilft das jemand anderem. – tsunami719

0

Es ist wie Rails sieht nur unterstützt das Nachgeben von Blöcken in Teilzahlen, wenn Sie 5.0 oder höher verwenden. Von der release notes for 5.0:

Erlauben Blöcke beim Rendern mit der render partial: Helfer.