在为课程开发应用程序时,我遇到了一个绊脚石:
这是我的Stocks Controller错误,出现错误:
class StocksController < ApplicationController
def search
if params[:stock]
@stock = Stock.find_by_ticker(params[:stock])
@stock ||= Stock.new_from_lookup(params[:stock])
end
if @stock
render json: @stock
#render partial: 'lookup'
else
render status: :not_found ,nothing: true
end
end
end
在课程中,它们具有与我相同的代码,但对于它们,它的工作原理。我所知道的唯一区别是他们正在研究Rails 4(Nitrous),并且我正在研究Rails 5 (Mac OS X / Atom IDE / GitLab存储库)。如果可以,请帮助我!提前谢谢!
答案 0 :(得分:7)
:nothing
选项为deprecated,将在Rails 5.1中删除。使用head
方法回复空响应正文。
试试这个:
render body: nil, status: :not_found
或:
head :not_found
请不要将错误发布为图像,复制文本
答案 1 :(得分:0)
这里的问题是你没有在else子句中渲染json
,因此Rails用于查找不存在的HTML视图。要解决此问题,请更新代码,如下所示:
class StocksController < ApplicationController
def search
if params[:stock]
@stock = Stock.find_by_ticker(params[:stock])
@stock ||= Stock.new_from_lookup(params[:stock])
end
if @stock
render json: @stock
#render partial: 'lookup'
else
render :json => {:error => "not-found"}.to_json, :status => 404
end
end
end