首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >“日期不得为空白”,但它不是空白(ActiveRecord验证)

“日期不得为空白”,但它不是空白(ActiveRecord验证)
EN

Stack Overflow用户
提问于 2015-09-19 00:15:57
回答 2查看 133关注 0票数 0

下面是与我的表对应的rails应用程序中的Ruby函数:

代码语言:javascript
运行
复制
 def self.import(file)
    line = 1
    CSV.foreach(file.path, headers: true) do |row|
      reading_hash = row.to_hash
      logger.debug("line #{line}")
      logger.debug(reading_hash)
      Reading.create!(reading_hash)
      line = line + 1
    end # end CSV.foreach
  end

我在调试器中看到了这个值:

代码语言:javascript
运行
复制
reading_hash = Hash (5 elements)
 'date' => 9/19/2015
 'name' => Vayeilech
 'reading' => Hosea 14:2-10; Micah 7:18-20; Joel 2:15-27 | Shabbat Shuva
 'assigned_to' => Spencer Ross (20th bar mitzvah anniversary) Gene Achter (deferred, please find another day for him)
 'comments' => Shabbat Shuvah

我还将哈希打印到记录器:

代码语言:javascript
运行
复制
  {"date"=>"9/19/2015", "name"=>"Vayeilech", "reading"=>"Hosea 14:2-10; Micah 7:18-20; Joel 2:15-27 | Shabbat Shuva", "assigned_to"=>"Spencer Ross (20th bar mitzvah anniversary) Gene Achter (deferred, please find another day for him)", "comments"=>"Shabbat Shuvah"}

但是如果我继续进入create!,我会得到:

代码语言:javascript
运行
复制
Validation failed: Date can't be blank

这发生在第三项记录上,前两项成绩很好。

也许我也应该引用一下验证:

代码语言:javascript
运行
复制
  validates :date, presence: true
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-09-19 00:53:08

您能将您的csv日期格式化为下列格式之一吗?这会让它发挥作用的。这些格式中的任何一个都将插入您想要的日期:

2015/09/19 2015/9/19 19/09/2015

票数 1
EN

Stack Overflow用户

发布于 2015-09-19 00:31:44

在日期前后加上引号。我想这会解决问题的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32662806

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档