我一直在尝试将Ransack搜索gem实现到我正在进行的项目中。我很确定我已正确设置它。我希望能够搜索配置文件并将我的代码放在配置文件控制器中,如下所示:
def index
@q = Profile.search(params[:q])
@profile = @q.result(distinct: true)
@profiles = Profile.all
end
配置文件index.html.erb文件如下:
<%= search_form_for @q do |f| %>
<div class="field">
<%= f.label :first_name_cont, "Name Contains" %>
<%= f.search_field :first_name_cont %>
</div>
<div class="actions"><%= f.submit "Search" %></div>
<% end %>
它至少似乎正在尝试正确搜索数据库,但只是不会在屏幕上呈现任何结果。这可能是我没有看到的显而易见的事情。非常感谢任何帮助。
答案 0 :(得分:1)
在控制器中尝试这样的设置并查看:
#profile controller
def index
@search = Profile.search(params[:q])
@profiles = @search.result(distinct: true)
end
#profile index
<%= search_form_for @search do |f| %>
<%= f.label :first_name_cont, "name in profile" %><br>
<%= f.submit "Search", class:"btn btn-info btn-block" %>
<% end %>
<% @profiles.each do |profile| %>
<%= profile.name %>
<% end %>
答案 1 :(得分:0)
当您尝试访问@profile时是问题还是只知道如何显示结果?如果是后者,那么它们现在存储在@profile中,因此您需要遍历它们并从每个配置文件实例中选择要显示的内容。
从我使用这个gem开始,它似乎默认为给定类的索引页面(所以在你的情况下,是配置文件索引页面)。所以你可以: