是否可以从模型动作中获取变量到控制器?

Is it possible to get a variable from a model action to the controller?

我正在修改模型中的“保存”操作,但我需要从模型的保存操作中获取名为“@variable”的变量,是否可以 return控制器的变量值?

这是我在模型中保存的动作:

  def save
    @variable = "some value"
    if imported_t_stocks.map(&:valid?).all?
      imported_t_stocks.each(&:save!)
      true
    else
      imported_t_stocks.each_with_index do |t_stock, index|
        t_stock.errors.full_messages.each do |msg|
          errors.add :base, "Row #{index + 6}: #{msg}"
        end
      end
      false
    end
  end

这是我的控制器:

  def create
    @t_stocks_import = TStocksImport.new(params[:t_stocks_import])
    if @t_stocks_import.save

 
      redirect_to stocks_path
    else
      redirect_to stocks_path
    end
  end

是的,你可以。 Rails 模型与任何其他模型一样 Ruby class。只需添加到您的模型:

attr_reader :variable

然后您可以使用:

访问
@t_stocks_import.variable

不过,直接访问模型属性的视图并不是一个好的做法。