Ruby on rails AbstractController::DoubleRenderError(在此操作中多次调用渲染和/或重定向,而不是重复
我知道这个错误AbstractController::DoubleRenderError(渲染和/或重定向)在多次渲染时会多次调用 但已使用解决方案Ruby on rails AbstractController::DoubleRenderError(在此操作中多次调用渲染和/或重定向,而不是重复,ruby-on-rails,ruby,Ruby On Rails,Ruby,我知道这个错误AbstractController::DoubleRenderError(渲染和/或重定向)在多次渲染时会多次调用 但已使用解决方案并返回 class FrequentMethodController < ApplicationController def post_exist?(post_id) post = Post.find_by_id(post_id) render_json('post_not found', 400, 'msg') unles
并返回
class FrequentMethodController < ApplicationController
def post_exist?(post_id)
post = Post.find_by_id(post_id)
render_json('post_not found', 400, 'msg') unless post
return post
end
def render_json(data, status_code, main_key = 'data')
render json: { "#{main_key}": data }, status: status_code and return
end
end
class PostController < FrequentMethodController
def view_post
post_id = params[:post_id]
post = post_exist?(post_id)
# test code
render_json(post, 1, 'data')
end
end
使用'rails',5.1.4'
类FrequentMethodController
def view_post
post_id = params[:post_id]
if post = post_exist?(post_id)
# test code
render_json(post, 1, 'data')
end
end
使用另一个控制器调用时未解决问题PostController
我不理解您的评论。您为什么还要创建FrequentMethodController
?只需使用ApplicationHelper
跨控制器重用方法。PostController应该直接从ApplicationController继承。I在FrequentMethodController中添加FrequentMethod并继承到其他controllers@TalaatMagdy,请参阅我的更新。我认为您已经偏离了轨道。我认为您将更容易遵守路由和控制器的标准约定。
def view_post
post_id = params[:post_id]
if post = post_exist?(post_id)
# test code
render_json(post, 1, 'data')
end
end