Ruby on rails 如何在模型中分配不同的属性?
我有6个字段,我想在模型中设置它们的属性。3\u打印字段是这样自动保存的Ruby on rails 如何在模型中分配不同的属性?,ruby-on-rails,ruby-on-rails-3,ruby-on-rails-4,Ruby On Rails,Ruby On Rails 3,Ruby On Rails 4,我有6个字段,我想在模型中设置它们的属性。3\u打印字段是这样自动保存的 def field1=(value) @number = Phoner::Phone.parse(value) write_attribute(:field1, @number.to_s) end def field1_print=(value) write_attribute(:field1_print, print_format(@number)) end 我有字段2,字段2,字段3和字段3的打印方法。
def field1=(value)
@number = Phoner::Phone.parse(value)
write_attribute(:field1, @number.to_s)
end
def field1_print=(value)
write_attribute(:field1_print, print_format(@number))
end
我有字段2,字段2,字段3和字段3的打印方法。我能把这些方法放在一些地方吗?每个方法都要重复,这样我就不会重复这些方法了?我还没有测试过它,但你可以这样构建:
["1", "2", "3"].each do |action|
define_method("field#{action}=(value)") do |argument|
@number = Phoner::Phone.parse(argument)
write_attribute("field#{action}", @number.to_s)
end
end
["1", "2", "3"].each do |action|
define_method("field#{action}_print=(value)") do |argument|
write_attribute("field#{action}_print, print_format(@number))
end
end
试试这个self.attributes.each do | name,value | do something name,value end