屈服于Rails部分

时间:2016-10-12 16:35:36

标签: ruby-on-rails ruby ruby-on-rails-5 ruby-on-rails-4.2 partials

我正在使用Rails 4.2,但是关于partials的Rails 5.0文档,尝试构建搜索部分。 http://guides.rubyonrails.org/layouts_and_rendering.html#using-partials

我正在获取搜索按钮,因此共享部分正在渲染,但是,它似乎没有回到调用块。我没有得到标签或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 %>

2 个答案:

答案 0 :(得分:0)

尝试在索引处替换它:

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

答案 1 :(得分:0)

如果你使用5.0或更高版本,看起来Rails只支持在partials中产生块。来自release notes for 5.0

  

使用render partial:帮助器进行渲染时允许阻止。