Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何在模型中分配不同的属性?_Ruby On Rails_Ruby On Rails 3_Ruby On Rails 4 - Fatal编程技术网

Ruby on rails 如何在模型中分配不同的属性?

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的打印方法。

我有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的打印方法。我能把这些方法放在一些地方吗?每个方法都要重复,这样我就不会重复这些方法了?

我还没有测试过它,但你可以这样构建:

["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