搜索欢迎控制器

时间:2017-06-08 00:53:17

标签: ruby-on-rails ransack

我有一个Product(imovel)控制器,用户可以在其中创建自己的产品(imovels)。我正在使用设计进行身份验证,而CRUD(创建,更新,删除)需要登录。因此,为了让客户能够看到产品并且不需要用户,我创建了欢迎控制器,因此它是根。
在产品索引中,我使用Ransack在表格中进行研究并且工作得很好。 (非常高兴)。
在欢迎控制器上,我尝试做同样的事情,但是当我提交搜索时,页面会重定向到imovels #index。

控制器:

class WelcomeController < ApplicationController
  def index
    @q = Imovel.ransack(params[:q])
    @imovel = @q.result(distinct: true)
  end
end

查看:

<div class="container text-center">
  <%= search_form_for @q do |f| %>
      # Search if the name field contains...
      <%= f.label :descricao_cont %>
      <%= f.search_field :descricao_cont %>
      <%= f.submit "Pesquisar", class: "btn btn-primary" %>
  <% end %>
</div>

在索引(imovels #index)中另一个重要的事情是在tr中有一个for,并且信息在那里被过滤:

Imovels Index

<tbody>
      <% @imovels.each do |imovel| %>
      <tr>
            <td><%= imovel.id %></td>
            <td><%= imovel.descricao %></td>
<% end %>

在我需要搜索的欢迎控制器中,我使用了Div:

欢迎索引

<% @imovels.each do |imovel| %>
  <div class="card">
    <div class="containerImovel">
      <h4><b><%= imovel.descricao %></b></h4>
      <p><%= imovel.cidade %> - <%= imovel.bairro.nome %> </p>
 </div>
  </div>
<% end %>

如何在欢迎控制器的div上进行搜索? Ransack是更好的选择吗?可以在has_many中搜索:通过关联吗?

1 个答案:

答案 0 :(得分:1)

在routes.rb

中为其添加路径
resources :imovel do
  collection do
    match 'search' => 'welcome#search', via: [:get, :post], as: :search
  end
end

然后向WelcomeController添加新的控制器操作

def search
  index
  render :index
end

然后修改搜索表单

<%= search_form_for @q, url: search_imovel_path, html: { method: :post } do |f| %>

请务必重新检查命名/变量,因为我并不完全熟悉您的应用