在欢迎控制器上搜索
Search on Welcome Controller
我有一个产品 (imovel) 控制器,用户可以在其中创建自己的产品 (imovels)。我正在使用设计进行身份验证,CRUD(创建、更新、删除)需要登录。因此,为了客户能够看到产品并且不需要用户,我创建了 Welcome 控制器,所以它是根。
在产品索引中,我使用 Ransack 在 table 中进行研究并且工作正常。 (对此非常高兴)。
在欢迎控制器上,我尝试做同样的事情,但是当我提交搜索时,页面被重定向到 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 指数
<tbody>
<% @imovels.each do |imovel| %>
<tr>
<td><%= imovel.id %></td>
<td><%= imovel.descricao %></td>
<% end %>
在我需要搜索的欢迎控制器中,我使用了 Divs:
欢迎指数
<% @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 :through association?
中搜索
在您的 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| %>
请务必重新检查 naming/variables,因为我对您的应用并不完全熟悉
我有一个产品 (imovel) 控制器,用户可以在其中创建自己的产品 (imovels)。我正在使用设计进行身份验证,CRUD(创建、更新、删除)需要登录。因此,为了客户能够看到产品并且不需要用户,我创建了 Welcome 控制器,所以它是根。
在产品索引中,我使用 Ransack 在 table 中进行研究并且工作正常。 (对此非常高兴)。
在欢迎控制器上,我尝试做同样的事情,但是当我提交搜索时,页面被重定向到 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 指数
<tbody>
<% @imovels.each do |imovel| %>
<tr>
<td><%= imovel.id %></td>
<td><%= imovel.descricao %></td>
<% end %>
在我需要搜索的欢迎控制器中,我使用了 Divs:
欢迎指数
<% @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 :through association?
中搜索在您的 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| %>
请务必重新检查 naming/variables,因为我对您的应用并不完全熟悉