Ruby on rails Rails-使用参数呈现请求引用者
寻找一种干净的方式来呈现请求引用者的操作和控制器,以防由另一个控制器控制的资源验证失败。这是因为可以从多个不同的视图创建资源 到目前为止,我已经完成了以下工作:Ruby on rails Rails-使用参数呈现请求引用者,ruby-on-rails,ruby,controller,request,render,Ruby On Rails,Ruby,Controller,Request,Render,寻找一种干净的方式来呈现请求引用者的操作和控制器,以防由另一个控制器控制的资源验证失败。这是因为可以从多个不同的视图创建资源 到目前为止,我已经完成了以下工作: if @resource.save redirect_to resource_path(@resource) else request_referer_controller = Rails.application.routes.recognize_path
if @resource.save
redirect_to resource_path(@resource)
else
request_referer_controller = Rails.application.routes.recognize_path(request.referrer)[:controller]
request_referer_action = Rails.application.routes.recognize_path(request.referrer)[:action]
search_param = Rails.application.routes.recognize_path(request.referrer)[:search_param]
render "#{request_referer_controller}/#{request_referer_action}", search_param: search_param if request_referer_controller.include? "search"
render "#{request_referer_controller}/#{request_referer_action}" if request_referer_controller.include? "profile"
end
但对我来说,这有点难看。rails中必须内置一些东西来确定和呈现之前的请求控制器、操作和任何参数,对吗
我已经习惯了Rails的内置功能。您可以重新定向<代码>重定向到:back下面是一个很好的例子:。希望这有帮助。。!!问题是我丢失了@resource错误。我认为我处理这一切都是错误的…可能是,你可以简单地直接渲染动作,你应该做的是创建部分形式,并在不同的视图中使用该部分。在控制器中,create action将呈现相应的动作。这里有一些想法:,也是为了更好地理解createscaffold,并查看在controller中生成的代码。希望这有帮助!!是的。最干净的方法是直接呈现动作。