Rails渲染模板与状态

时间:2014-02-14 05:25:33

标签: ruby-on-rails ruby-on-rails-4

在API控制器中响应的最简单/最短的方法是什么。目前有以下工作:

respond_to do |format|
  format.json { render 'client', status: :ok }
end

然而这个控制器只会响应json(respond_to:json)所以整个respond_to做|格式|事情似乎是不必要的代码。

理想情况下,我只想做一些简单的事情:

render 'client', status: :ok

更新 我忽略了这一点:'client'是一个与我的动作名称不匹配的jbuilder模板。

3 个答案:

答案 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语句。