0
私のバックエンドのAPI専用アプリケーションは、次のコードのためにRestClient::InternalServerError: 500 Internal Server Error
のクライアントに応答しています(レンダリングするテンプレートもありません)。Backend-only(API)アプリケーションでのActionView :: MissingTemplateの防止?
def create
@project = Project.create(params.require(:project).permit(:name))
@project.update_attributes(key: Devise.friendly_token)
respond_to do |format|
format.html
format.json { render json: @project }
end
end
現在のソリューション:Railsのに基づいて
がLayouts and Rendering
に案内し、これを使用することによって防ぐことができるrender json: @project
出典:http://guides.rubyonrails.org/layouts_and_rendering.html
掲載:
しかし、私はクライアントにフォーマットのオプションを与えたいので、respond_to
ブロックがより理想的な選択肢です。
これらを組み合わせて最初のブロックを使用する方法はありますか?500
というエラーが発生していませんか?
ありがとうございました。
HTML形式で返されると思われるものは何ですか? – Baldrick
私は、多くのサンプルアプリケーションで複数のフォーマットを提供してきました... APIのみのアプリケーションの場合はHTML応答を許可する価値はありませんか? –
すべてのクライアントがJSONを期待している場合は、要求されたフォーマットを無視します: 'respond_to'ブロックを削除し、' render json:@ project'だけを残してください。そうすれば、コードはよりシンプルになり、クライアントによって使いやすくなります。 – Baldrick