Rails中通常会发生ActionView::MissingTemplate
什么时候?我有一个API,它可能无法返回错误,但是当移动触发了路由时。它发生两次ActionView::MissingTemplate
错误。
以下是我的API控制器中的示例代码:
def search
@search_text = params[:search_text]
unless @search_text.blank?
@my_models = MyModel.find_all_by_age(@search_text)
else
@my_models = []
end
render 'api/v4/my_models/show', status: 200, formats: :json
end
在我的路线上:
namespace :api, defaults: {format: 'json'} do
namespace :v4 do
resource :my_models, only: [:search] do
get :search
end
end
end
ActionView::MissingTemplate
何时发生,我感到困惑?有人能指出我这个错误何时发生?此移动设备是否遗漏了URL中的某些内容以使此错误发生?怎么样?
谢谢!
答案 0 :(得分:0)
ActionView将在当前控制器视图文件夹中查找模板/部分。但是,如果您更改了控制器中的视图路径,那么您将能够为其添加和附加不同的视图路径。
在您的搜索方法中,您有render 'api/v4/my_models/show'
,请确保在列出的工作目录中包含正确的模板。
答案 1 :(得分:0)
在url参数中包含ActionView::MissingTemplate
和%dd
时,您可能会出现%ff
错误。因为以下是ASCII Encodings中的特殊字符。 %dd
用于特殊字符Ý
例如,
localhost:3000/api/users?search=%dd
localhost:3000/api/users?search=%ff
包含%ff
和%dd
的参数的任何情况。与d%dd
一样。