Error: "Template is missing"
Error: "Template is missing"
我收到错误:
Template is missing
Missing template customers/search, application/search with {:locale=>[:en], :formats=>[:html], :variants=>[], :handlers=>[:erb, :builder, :raw, :ruby, :coffee, :jbuilder]}.
当我尝试创建一个搜索栏来搜索数据库中的现有客户时,就会发生这种情况。我认为它正在发生,因为我使用的是部分“_search.html.erb”,但它需要是部分的,我不知道如何解决这个问题。
这是我的客户\_search.html.erb:
<%= form_tag search_customers_path do %>
<input class = "searchbar" id ="custsearch" name=query" placeholder = "find colleague" type="text">
<% end %>
html 它正在渲染(在 events\new.html.erb 中):
<div class = "searchbar">
<%= render partial: 'customers/search', :object => @customers, locals:{} %>
</div>
这是我的客户控制器 'search' 方法:
def search
@q = "%#{params[:query]}%"
@customers = Customer.where("first_name LIKE ? or last_name LIKE ? ",@q,@q)
render :layout => false
end
这是我的路线文件:
root 'pages#home'
get '/main' => 'pages#main'
get '/signup' => 'customers#new'
resources :customers do
collection do
get 'search'
end
end
get '/compose' => 'events#new'
resources :events
我什至不确定这个搜索是否有效,但这是实现它的第一个障碍。请帮忙!
谢谢
您的搜索操作正在寻找 customers/search.html.erb
,但您没有。尝试在 customers
文件夹中创建一个名为 search.html.erb
的新文件,然后将下面的代码粘贴到那里:
<div class = "searchbar">
<%= render partial: 'customers/search', :object => @customers, locals:{} %>
</div>
同时从您的 search
操作中删除 render :layout => false
。如果您以 html 格式发送请求。
你只需要将你的控制器修改成类似
的东西
def search
@q = "%#{params[:query]}%"
@customers = Customer.where("first_name LIKE ? or last_name LIKE ? ",@q,@q)
render partial: "customers/search", locals: { customers: @customers }, :layout => false
end
在cutomers/_search中改为
#customers/_search.html.erb
<%= form_tag search_customers_path, method: :get do %>
<input class = "searchbar" id ="custsearch" name=query" placeholder = "find colleague" type="text">
@punitcse
的回答是正确的:
def create
# this will be looking for customers/search.html.erb
# you have to explicitly define it:
render partial: "search", layout: false
end
这应该解决错误。
在视图中调用局部是很正常的:
<%= render partial: "customers/search", object: @object %>
问题看起来是由您的 create
操作引起的,可以通过更正来解决。
我收到错误:
Template is missing
Missing template customers/search, application/search with {:locale=>[:en], :formats=>[:html], :variants=>[], :handlers=>[:erb, :builder, :raw, :ruby, :coffee, :jbuilder]}.
当我尝试创建一个搜索栏来搜索数据库中的现有客户时,就会发生这种情况。我认为它正在发生,因为我使用的是部分“_search.html.erb”,但它需要是部分的,我不知道如何解决这个问题。
这是我的客户\_search.html.erb:
<%= form_tag search_customers_path do %>
<input class = "searchbar" id ="custsearch" name=query" placeholder = "find colleague" type="text">
<% end %>
html 它正在渲染(在 events\new.html.erb 中):
<div class = "searchbar">
<%= render partial: 'customers/search', :object => @customers, locals:{} %>
</div>
这是我的客户控制器 'search' 方法:
def search
@q = "%#{params[:query]}%"
@customers = Customer.where("first_name LIKE ? or last_name LIKE ? ",@q,@q)
render :layout => false
end
这是我的路线文件:
root 'pages#home'
get '/main' => 'pages#main'
get '/signup' => 'customers#new'
resources :customers do
collection do
get 'search'
end
end
get '/compose' => 'events#new'
resources :events
我什至不确定这个搜索是否有效,但这是实现它的第一个障碍。请帮忙!
谢谢
您的搜索操作正在寻找 customers/search.html.erb
,但您没有。尝试在 customers
文件夹中创建一个名为 search.html.erb
的新文件,然后将下面的代码粘贴到那里:
<div class = "searchbar">
<%= render partial: 'customers/search', :object => @customers, locals:{} %>
</div>
同时从您的 search
操作中删除 render :layout => false
。如果您以 html 格式发送请求。
你只需要将你的控制器修改成类似
的东西 def search
@q = "%#{params[:query]}%"
@customers = Customer.where("first_name LIKE ? or last_name LIKE ? ",@q,@q)
render partial: "customers/search", locals: { customers: @customers }, :layout => false
end
在cutomers/_search中改为
#customers/_search.html.erb
<%= form_tag search_customers_path, method: :get do %>
<input class = "searchbar" id ="custsearch" name=query" placeholder = "find colleague" type="text">
@punitcse
的回答是正确的:
def create
# this will be looking for customers/search.html.erb
# you have to explicitly define it:
render partial: "search", layout: false
end
这应该解决错误。
在视图中调用局部是很正常的:
<%= render partial: "customers/search", object: @object %>
问题看起来是由您的 create
操作引起的,可以通过更正来解决。