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
我有一个名为 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