【发布时间】:2015-05-04 11:16:12
【问题描述】:
我正在尝试实现custom attribute accessors with validation。
假设attr_validated。现在这个attr_validated
1:应该具有与attr_accessor 相同的setter 和getter 方法。 ## 这部分完成了。
2:它应该验证给定的块。
attr_validated :num_legs do |v|
v <= 4
end
这个问题可能看起来像任何其他问题,但事实并非如此。 谷歌搜索时我得到了
1: Ist Part
class Class
def attr_validated(*args)
args.each do |arg|
# getter
self.class_eval("def #{arg};@#{arg};end")
# setter
self.class_eval("def #{arg}=(val);@#{arg}=val;end")
end
end
end
class Dog
attr_validated :num_legs ## Instead of this i need to validate a block also attr_validated :num_legs do |v|
v <= 4
end
dog = Dog.new
p dog.num_legs
p dog.num_legs = 'Stack'
2:我们如何实施第二部分。
任何帮助将不胜感激!!!
【问题讨论】:
标签: ruby-on-rails ruby