0

リファクタリングと DRY を手伝ってもらえますか? 私にはアイデアがありません。ありがとう。

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

まあ、このように 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 に答える
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 に答える