0

我有一个这样的控制器

MyController < ApplicationController

def my_method
  validate(params[:name].blank?, "Name can't be blank")
end
private

def validate(condition, msg)
  if condition
    flash[:notice] = msg
    redirect_to :back
    return
  end
end

由于显而易见的原因,此代码将出现“重定向或仅呈现一次”错误。有没有一种优雅的方法可以从这个方法中返回操作并避免对我的操作进行测试?

4

1 回答 1

1

你不能真正强迫你的方法的调用者做任何事情,但你可以向它发出你希望它如何表现的信号:

def my_method
  return unless validate(params[:name].blank?, "Name can't be blank")
end

def validate(condition, msg)
  return true unless condition

  flash[:notice] = msg
  redirect_to :back
  return false
end
于 2013-10-07T21:06:20.007 回答