0

你能帮我重构和干燥吗?我没有想法。谢谢。

if request.xhr?
  render :json => {
    :status => true,
    :location => root_url + "/projects",
    :message => I18n.t("project.destroy")
  }
else
  flash[:notice] = I18n.t("project.destroy")
  redirect_to :action => :index
end
4

2 回答 2

1

你能做的不多,但

message = I18n.t('project.destroy')

return render :json => {
         :status => true,
         :location => "#{root_url}/projects",
         :message => message
       } if request.xhr?

flash[:notice] = message
redirect_to :action => :index
于 2012-10-20T07:52:16.293 回答
1

好吧,您可以像这样覆盖 application_controller.rb 中的 redirect_to

def redirect_to(options={}, response_status={})
  if request.xhr?
    render :json => { :status => true, :location => options, :message => flash[:notice] }
  else
    super
  end
end

然后继续使用

flash[:notice] = I18n.t('project.destroy')
redirect_to projects_path

在您的控制器中。

于 2012-10-20T08:51:15.513 回答