有没有办法在Mongoid中覆盖模型的setter或getter?就像是:
class Project
include Mongoid::Document
field :name, :type => String
field :num_users, type: Integer, default: 0
key :name
has_and_belongs_to_many :users, class_name: "User", inverse_of: :projects
# This will not work
def name=(projectname)
@name = projectname.capitalize
end
end
Run Code Online (Sandbox Code Playgroud)
在name不使用虚拟字段的情况下可以覆盖方法?
san*_*rew 24
更好用
def name=(projectname)
super(projectname.capitalize)
end
Run Code Online (Sandbox Code Playgroud)
方法
self[:name] = projectname.capitalize
Run Code Online (Sandbox Code Playgroud)
可能是危险的,因为它会导致超载会导致无休止的递归
rub*_*ish 16
def name=(projectname)
self[:name] = projectname.capitalize
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5978 次 |
| 最近记录: |