Ruby on rails 4 未定义的方法'type#u cast';对于#<;ActiveRecord::ConnectionAdapters::Column>;(命名者)

Ruby on rails 4 未定义的方法'type#u cast';对于#<;ActiveRecord::ConnectionAdapters::Column>;(命名者),ruby-on-rails-4,activerecord,Ruby On Rails 4,Activerecord,ActiveRecord::ConnectionAdapters::Column用于有一个名为type_cast的方法,该方法获取字符串并将其强制转换为“适当的实例”。这似乎在某个时候被删除了,我不知道应该做什么来替换它 下面是使用它的代码: # Create a column that will be responsible for typecasting @column = ActiveRecord::ConnectionAdapters::Column.new(attribute.

ActiveRecord::ConnectionAdapters::Column
用于有一个名为
type_cast
的方法,该方法获取字符串并将其强制转换为“适当的实例”。这似乎在某个时候被删除了,我不知道应该做什么来替换它

下面是使用它的代码:

  # Create a column that will be responsible for typecasting
  @column = ActiveRecord::ConnectionAdapters::Column.new(attribute.to_s, options[:default], @type == 'any' ? nil : @type)

  # Typecasts the value based on the type of preference that was defined
  def type_cast(value)
    if @type == 'any'
      value
    else
      @column.type_cast(value)
    end
  end
我正在使用Rails/ActiveRecord4.2.10

这里有一个列表:,但据我所知,它不是特别有用


ETA:目前,我已经从原始类型转换中复制了代码,并对其进行了修改以在本地使用。但是如果有一个真正的解决方案,我更愿意这样做。

ActiveRecord::ConnectionAdapters::Column#type_cast
被删除/移动到API的其他部分,包括
type_cast_for_database
type_cast_for_schema

您可以在连接上使用
类型\u cast
,如下所示:

@column = ActiveRecord::ConnectionAdapters::Column.new(attribute.to_s, options[:default], @type == 'any' ? nil : @type)

# Typecasts the value based on the type of preference that was defined
def type_cast(value)
  if @type == 'any'
    value
  else
    ActiveRecord::Base.connection.type_cast(value, @column) # <---- HERE
  end
end
@column=ActiveRecord::ConnectionAdapters::column.new(attribute.to_s,options[:default],@type==“any”?nil:@type)
#类型根据定义的首选项类型强制转换值
def类型_转换(值)
如果@type=='any'
价值
其他的

ActiveRecord::Base.connection.type_cast(value,@column)#您实际上想要强制转换什么?你能展示一个有更多上下文的代码示例吗?