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

时间:2015-08-20 10:31:57

标签: ruby-on-rails textfield comma

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

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

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

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

2 个答案:

答案 0 :(得分:1)

当您使用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

答案 1 :(得分:0)

假设您的文本字段以"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)