在我的应用中,我有工作流程和客户端。它是一个多对多的关系。每个客户端往往有30-40个工作流程。在我的客户端显示页面中,我目前有一个表格来显示该客户端的所有工作流程。
<%- model_class = Client -%>
<div class="page-header">
<h1><%=t '.title', :default => @client.name %></h1>
</div>
...
<% @workflows %>
<% @workflows.each do |workflow| %>
...
在我的客户控制器中,我有这个为Show准备对象。
def show
@client = Client.find(params[:id])
@workflows_no_subs = Workflow.where(:client_id => @client.id, :requires_preconfig => 'true')
@workflows_raw = Workflow.where(:client_id => @client.id)
@workflows = @workflows_raw.sort_by {|flow| flow.name}
respond_to do |format|
format.html
format.js
end
end
我想要做的是在页面顶部添加一个搜索框,以便用户可以在客户特定工作流程中搜索工作流并显示结果。
我在网上找到的内容在视图中指出了类似的内容:
<%= form_tag clients_path(@client), :method => 'get' do %>
<h2> Search for Workflows </h2>
<p>
<%= text_field_tag :search, params[:search] %>
<%= submit_tag "Search", :name => nil %>
</p>
<% end %>
在控制器中有这样的东西:
@clients = Client.search(params[:search])
但我在网上找到的所有内容都在谈论索引方法,我无法弄清楚或找到任何一个很好的解释如何在我的show方法中做到这一点(这就是我假设看起来像它的地方需要去)。
我试图通过rails方式弄清楚如何最好地实现这一目标,并且如果可能我应该尝试用JQuery而不仅仅是rails来实现这一点。
如果我现在尝试搜索,我看到的当前结果是:
Processing by ClientsController#index as
Parameters: {"utf8"=>"✓", "search"=>"sdsdf"}
Client Load (53.3ms) SELECT "clients".* FROM "clients" WHERE (name LIKE '%sdsdf%' OR re_workflow_ident LIKE '%sdsdf%' )
PG::UndefinedColumn: ERROR: column "re_workflow_ident" does not exist