当我在127.0.0.1/searches/new
转到我的页面并点击提交时,我得到:
ActionView::MissingTemplate in Searches#show
Missing partial searches/search with {:locale=>[:en], :formats=>[:html], :handlers=>[:erb, :builder, :coffee]}. Searched in:
我不明白为什么,因为通常Rails会将结果发送给yield
,不是吗?
在我的show.html
:
<%= render @search.calendars %>
在我的控制器searches_controller.rb
中:
def new
@search = Search.new
end
def create
@search = Search.create!(params[:params])
redirect_to @search
end
def show
@search= Search.find(params[:id])
end
在我的模型中searches.rb
:
def calendars
@calendars ||= find_calendars
end
private
def find_calendars
calendars = Calendar.order(:event)
calendars = calendars.where("event like ?", "%#{keywords}%") if keywords.present?
calendars
end
在我的routes.rb
:
resources :searches
答案 0 :(得分:0)
以下行尝试通过局部视图渲染模型:
<%= render @search.calendars %>
如果您想要通过部分视图进行渲染,则必须在app/views/searches/_searches.html.erb
创建文件。
或者删除上面的渲染调用,然后将渲染逻辑放在app/views/searches/view.html.erb
文件中。
答案 1 :(得分:0)
我猜你在app/view/searches/new.html.erb
:
<%= render @search %>
上面是一个简写,如果@search
是Search
的实例,它实际上是这样做的:
<%= render :partial => 'searches/search', :locals => {:search => @search} %>
但是,您的应用程序找不到视图部分app/views/searches/_search.html.erb
。
您究竟想要成为什么内容?替换此代码,或创建丢失的文件并添加内容。