创建时如何将字符串转换为模型中的现有属性

时间:2019-06-04 17:54:43

标签: ruby-on-rails

我有一个字符串数组,我想在帖子创建期间为每个属性检索。

我的数组= ["_646_maturity", "_660_maturity", "_651_maturity", "_652_maturity", "_641_maturity"]


class Audit < ApplicationRecord

  belongs_to :user

  before_save :calculate_scoring

  def calculate_scoring
    scoring = []

    models = ActiveRecord::Base.connection.tables.collect{|t| t.underscore.singularize.camelize.constantize rescue nil}
    columns = models.collect{|m| m.column_names rescue nil}

    columns[2].each do |c|
      if c.include? "maturity"
        Rails.logger.debug 'COLUMN : '+c.inspect
        scoring.push(c)
      end
    end

    getMaturity = ""

    scoring.each do |e|
       getMaturity = e.to_sym.inspect
       Rails.logger.debug 'MATURITY : '+getMaturity
    end


  end

end

日志打印> 'MATURITY : :_651_maturity'

我正在寻找:_651_maturity的值,该值是我的帖子的属性。

我尝试了.to_sym,但是它不起作用。

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

calculate_scoring内,您可以使用self指向要保存的记录。因此self._651_maturity = <some_value>self[:_651_maturity] = <some_value>self['_651_maturity']都是设置_651_maturity的有效方法。

此外,您可以执行以下操作:

my_attrib = '_651_maturity'
self[my_attrib] = 'foo'