ruby-on-rails – 如何向ActiveRecord添加新属性

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – 如何向ActiveRecord添加新属性前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
从模型中获取所有值后,我想向ActiveRecord类添加另一个自定义属性(此属性不是db中的列),以便我可以在视图中使用它,但rails不允许我添加一个.我应该在其模型类中添加什么?
@test.all

@test.each do |elm|
    elm[:newatt] = 'added string'
end

错误

can't write unknown attribute `newatt'

解决方法

试试这个
class Test < ActiveRecord::Base
  attr_accessor :newattr
end

你可以像访问它一样

@test = Test.new
@test.newattr = "value"

你可能会注意到这是一个属性,而不是哈希.所以它使用.句法.但是,如果您需要它表现得像哈希,您可以在不定义新属性的情况下执行此操作

@test.all
@test.each do |elm|
    new_elm = {}
    new_elm[:newatt] = 'added string'
end

最后,我不确定你要做什么.如果这对你没有意义,请重新解释你的问题,这样我们就能更好地理解问题.

猜你在找的Ruby相关文章