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'