今天遇到一个奇怪的问题:
代码如下:
class Role < ActiveRecord::Base
after_find do |record|
unless record.rule.nil?
# 转换为hash类型, rule原来是hash字符串
record.rule = JSON.parse(record.rule)
end
end
end
class RolesController < ApplicationController
def show
@role = Role.find(1)
# role.rule 居然是字符串类型
end
end
rule 在数据库中定义的类型是 string 我想在查询之后,通过 after_find 回调把 rule 的字符串转换为 hash,但是问题出现了,在 controller, 或者 view 中是使用@role.rule的时候,rule 居然还是字符串类型的???? 各位,有没有遇到过类似的问题,看看如何解决