Ruby on rails 轨道将场分成两部分,即米和毫米

Ruby on rails 轨道将场分成两部分,即米和毫米,ruby-on-rails,forms,ruby-on-rails-4,Ruby On Rails,Forms,Ruby On Rails 4,我在rails中有一个数字字段,是否有一种简单的方法将输入框分成两部分,即输入米和输入毫米?您可以在模型上使用两个虚拟属性。我假设您的模型名为model,现有属性名为unit class Model < ActiveRecord::Base attr_accessor :unit_metres, :unit_millimetres def unit_metres=(value) @unit_metres = value self.unit = @unit_metr

我在rails中有一个数字字段,是否有一种简单的方法将输入框分成两部分,即输入米和输入毫米?

您可以在模型上使用两个虚拟属性。我假设您的模型名为
model
,现有属性名为
unit

class Model < ActiveRecord::Base
  attr_accessor :unit_metres, :unit_millimetres

  def unit_metres=(value)
    @unit_metres = value
    self.unit = @unit_metres * 1000 + unit_millimetres
  end

  def unit_millimetres=(value)
    @unit_millimetres = value
    self.unit = unit_metres + @unit_millimetres
  end
end
类模型

现在,不要在表单中使用
,而是使用

您的属性是什么类型的-字符串还是浮点?属性是小数,因此以毫米为单位保存值,但是想让它以米和毫米为单位进行编辑吗?我决定不这样做,所以我还没有测试你的代码,但是你会不会在这里有一个无休止的循环,每个方法都互相调用?不,setter调用的是相反的getter,而不是彼此。