从模型中获取所有值后,我想向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
最后,我不确定你要做什么.如果这对你没有意义,请重新解释你的问题,这样我们就能更好地理解问题.