1

私はRails 4.2を使用していますが、部分的にRails 5.0のドキュメントに続いて、部分的な検索を構築しようとしています。 http://guides.rubyonrails.org/layouts_and_rendering.html#using-partialsRailsで部分的に返す

私は検索ボタンを取得しているので、共有パーシャルはレンダリングされていますが、呼び出し元のブロックに戻っていないようです。私はラベルやsearch_fieldを取得していません。私は何かばかげたことをしましたか、これはRails 4.2では機能しませんか?これは基本的なRubyのように思えます。

この例は、4.2のドキュメントには含まれていません。

http://guides.rubyonrails.org/v4.2/layouts_and_rendering.html#using-partialsは、共有/ _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

レンダリングが動作しています - ボタンが表示されます。レール4.2と5.0の両方のガイドは<%= yield f%>を使用します。私は問題がこのセクションにあると思う "<%= search_form_for @q、html:{class: 'form-inline'} do | f |%>"あなたはransackを使っていますか?なぜあなたはform_forを使用しておらず、search_form_forを使用していますか? – user3456978

+0

はい、私たちはransackを使用しています。フォームグループ内に追加したものはすべてページに表示されますが、利回りは機能しません – tsunami719

答えて

0

あなたのインデックスでこれを置き換えてみてください。それは、Railsのように見えます

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

Pedroに感謝します。残念ながら私はそのプロジェクトを数ヶ月前に残しましたので、私はこの問題に対する私の解決策が実際は何かを知ることができません。 :) しかし、多分これは他の誰かを助けるでしょう。 – tsunami719

0

のみ5.0以降を使用している場合は、部分的にブロックに降伏することをサポートします。 release notes for 5.0

render partial:ヘルパーを使用してレンダリングするブロックを許可します。

関連する問題