在API控制器中响应的最简单/最短的方法是什么。目前有以下工作:
respond_to do |format|
format.json { render 'client', status: :ok }
end
然而这个控制器只会响应json(respond_to:json)所以整个respond_to做|格式|事情似乎是不必要的代码。
理想情况下,我只想做一些简单的事情:
render 'client', status: :ok
更新 我忽略了这一点:'client'是一个与我的动作名称不匹配的jbuilder模板。
答案 0 :(得分:4)
您可以直接使用渲染
render json: 'client', status: :ok
答案 1 :(得分:3)
根据@hassasin的说法,您可以在控制器的每个操作上将控制器指示为render json:
格式。
其他选项是利用您的config.routes.rb
设置控制器的整个响应格式,例如: contacts_controller
:
resources :contacts, defaults: {format: :json}
如果您想指明status
,请将其添加到您的操作中:
def index
render status: :ok # 200, 400, 500, what ever you want
end
我使用Rails 3.2.16测试了上面的代码
我希望它可以帮到你。
答案 2 :(得分:1)
由于您使用json
视图(假设您使用的是jbuilder
),如果您的操作名称与视图名称匹配,则不需要该render语句。