我有一个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中搜索:通过关联吗?
答案 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| %>
请务必重新检查命名/变量,因为我并不完全熟悉您的应用