【问题标题】:Rails input comma separated value from text field and store in different columnsRails 从文本字段中输入逗号分隔值并存储在不同的列中
【发布时间】:2015-08-20 19:27:10
【问题描述】:

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

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

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

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

【问题讨论】:

  • 扫描文档了解字符串操作方法
  • 如果可能,请提供您的代码。

标签: ruby-on-rails textfield comma


【解决方案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

【讨论】:

  • 非常感谢@huan son。它工作得很好。 :-)
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-17
    • 1970-01-01
    • 2023-03-16
    • 1970-01-01
    • 2020-01-19
    相关资源
    最近更新 更多