RubyonRails从活动记录向现有对象添加属性

RubyonRails从活动记录向现有对象添加属性,ruby,ruby-on-rails-4,object,Ruby,Ruby On Rails 4,Object,我的问题一开始似乎很简单,但我还不能解决它,所以我从数据库中获取了一些记录,然后我需要为每个检索到的记录添加一个属性。我试着如下 我的模型 class Lesson < ActiveRecord::Base attr_reader :palindrome #getter attr_writer :palindrome #setter attr_accessor :palindrome #both belongs_to :schedule

我的问题一开始似乎很简单,但我还不能解决它,所以我从数据库中获取了一些记录,然后我需要为每个检索到的记录添加一个属性。我试着如下 我的模型

class Lesson < ActiveRecord::Base
    attr_reader   :palindrome #getter
    attr_writer   :palindrome #setter
    attr_accessor :palindrome #both

    belongs_to  :schedule
    belongs_to  :user
    has_one     :schedule


end
正如您所看到的,没有返回我分配的新属性,但是我尝试调用

render json: @lessons[0].palindrome
它确实会向我返回属性的值,我的问题是,当我渲染整个对象时,如果它返回新的attr值,我该怎么做?
非常感谢

您传递的是ActiveRecord对象数组,而不是散列。json转换器将解析模型的属性,而不是指定给这些对象的自定义变量。尝试将模型转换为哈希:

lesson = lesson.attributes
lesson['palindrome'] = 'TEST'

也考虑重构你的代码,我不认为你需要那些case语句,也不需要<代码> @ Dayx变量,这使得它很难理解。

< P>你正在传递ActureCordD对象数组,而不是散列。json转换器将解析模型的属性,而不是指定给这些对象的自定义变量。尝试将模型转换为哈希:

lesson = lesson.attributes
lesson['palindrome'] = 'TEST'

也考虑重构你的代码,我不认为你需要那些case语句,也不需要<代码> @ Dayx变量,这使得它很难理解。

嘿,伙计,谢谢你的帮助,我新使用了渲染方法,无论如何我都在重构代码,很多Thankky合作感谢你的帮助,我是新的使用渲染方法,无论如何,我正在重构代码
lesson = lesson.attributes
lesson['palindrome'] = 'TEST'