【问题标题】:Is it possible to get a variable from a model action to the controller?是否可以从模型操作获取变量到控制器?
【发布时间】:2021-10-06 23:30:51
【问题描述】:

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

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

  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

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-5


    【解决方案1】:

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

    attr_reader :variable
    

    然后你可以使用:

    @t_stocks_import.variable
    

    不过,视图直接访问模型属性并不是一个好习惯。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-10-07
      • 1970-01-01
      • 1970-01-01
      • 2020-05-08
      • 1970-01-01
      • 2013-05-14
      • 2011-09-06
      相关资源
      最近更新 更多