Rails 从文本字段输入逗号分隔值并存储在不同的列中

Rails input comma separated value from text field and store in different columns

我有一个名为 RaceTimings 的模型,它记录了每个学生在比赛中的时间。

我想从单个文本字段中获取 minute:seconds:microseconds 格式的表单输入,并将值存储在同一模型的 3 个不同列中。

我已经浏览过其他链接,但找不到任何解决方案。

谁能建议如何做到这一点?

假设您的文本字段以 "minute:seconds:microseconds" 格式给出分钟、秒和微秒,您可以这样做:

a = "minute:seconds:microseconds".split(':')
minutes, seconds, microseconds = a[0], a[1], a[2]
RaceTiming.update_attributes(:minutes => minutes, :seconds => seconds, :microseconds => microseconds)

只需使用您在使用 = 时一直调用的 def something=(val) 函数来设置一些变量。

class RaceTiming
  # unless you dont have those fields in your database
  attr_accessor :minutes, :seconds, :microseconds

  def time
    # returns "12:14:24" as a string
    [minutes, seconds, microseconds].join(":")
  end

  def time=(val)
    #split the val into an array ["11", "04", "123"] if it was 11:04:123
    val = val.split(":") 
    self.minutes = val[0]
    self.seconds = val[1]
    self.microseconds = val[2]
   end
end

你叫它

record = RaceTiming.new
record.time = "12:44:953"
# do what you need to do