在使用 Rails 保存之前将字符串转换为日期

2024-03-19

对 Ruby 很陌生,我已经被困了好几个小时了。到处寻找也找不到答案。

所以我使用 Rails gem 的引导日期选择器。

因为我更改了日期选择器的日期格式,所以它不会存储在数据库中。猜测这是因为 simple_form 输入被用作字符串,以避免 simple_form 应用默认日期选择输入。

我的问题是:如何在将“06/18/2013”​​等字符串保存到数据库之前将其修改/转换为日期?这最好由控制器处理吗?

我的控制器:

# PUT /events/1
# PUT /events/1.json
def update
  @event = Event.find(params[:id])

  # Ugghhhh I need help
  # @event.event_date = Date.parse(params[:event_date]).to_date

  respond_to do |format|
    if @event.update_attributes(params[:event])
      format.html { redirect_to @event, :notice => 'Event was successfully updated.' }
      format.json { head :no_content }
    else
      format.html { render :action => "edit" }
      format.json { render :json => @event.errors, :status => :unprocessable_entity }
    end
  end
end

数据库架构:

  create_table "events", :force => true do |t|
    t.string   "event_name"
    t.string   "event_location"
    t.date     "event_date"
    t.time     "event_time"
    t.text     "event_content"
    t.datetime "created_at",                       :null => false
    t.datetime "updated_at",                       :null => false
    t.integer  "user_id"
    t.boolean  "approved",       :default => true
    t.integer  "category_id"
  end

这是服务器日志:

  Started PUT "/events/1" for 127.0.0.1 at 2013-06-14 02:37:15 -0700
  Processing by EventsController#update as HTML
    Parameters: {"utf8"=>"✓", "authenticity_token"=>"RYMdJ0lFmvG0+nVIsTtJXu5fyD/L3/WAKsk9FX6WWgo=", "event"=>{"user_id"=>"1", "category_id"=>"3", "event_name"=>"A Event Name", "event_location"=>"Event Location", "event_date"=>"06/13/2013", "event_time(1i)"=>"2000", "event_time(2i)"=>"1", "event_time(3i)"=>"1", "event_time(4i)"=>"02", "event_time(5i)"=>"18", "event_content"=>"First night"}, "commit"=>"Update Event", "id"=>"1"}
    User Load (0.2ms)  SELECT "users".* FROM "users" WHERE "users"."id" = 1 LIMIT 1
    Event Load (0.1ms)  SELECT "events".* FROM "events" WHERE "events"."id" = ? LIMIT 1  [["id", "1"]]
     (0.0ms)  begin transaction
     (0.0ms)  commit transaction
  Redirected to http://localhost:3000/events/1
  Completed 302 Found in 4ms (ActiveRecord: 0.3ms)

您可以在控制器中使用 strptime。

DateTime.strptime("06/18/2013", "%m/%d/%Y")
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在使用 Rails 保存之前将字符串转换为日期 的相关文章

  • 如何在 Ruby 中列出局部变量?

    def method a 3 b 4 some method that gives a b end 局部变量 http ruby doc org core Kernel html method i local variables 它输出符号
  • 如何使用 Nokogiri 获取某些标签之后或之前的文本

    我有一个 HTML 文档 如下所示
  • 同一模型之间的两个 has_many 链接

    I have users其中有products通过 habtm 链接 该链接正在运行 我想添加一个链接user模型和product模型 以跟踪creator该产品的 当然 谁并不总是拥有该产品 但是当我写在我的user and produc
  • 为什么这个 Ruby 方法返回“空值表达式”错误?

    我有这个简单的方法 def is palindrome sentence raise ArgumentError new expected string unless sentence is a String safe sentence s
  • Postgres 使用 Rails Active Record 在 IN 列表中 ORDER BY 值

    我收到按 收入 排序的 UserId 列表 一次大约 1000 个 我在 我的系统数据库 中有用户记录 但 收入 列不存在 我想从 我的系统数据库 中检索用户 按照列表中收到的排序顺序 我尝试使用 Active Record 执行以下操作
  • Mongoid - 同一外域的两个域的逆

    我试图让以下 Mongoid 关系发挥作用 但每个团队的游戏字段都是一个空数组 这不是一个有效的关系模型吗 我是否需要分开比赛 即主场比赛和客场比赛 class Team include Mongoid Document has many
  • 在 Rails 6 上定义 Secret_key_base 的正确方法是什么?

    正确的定义方式是什么secret key base既然我们已经有了每个环境的凭据 就可以在 Rails 6 上使用了吗 我的环境有变量SECRET KEY BASE但 Rails 并没有接受它 我尝试定义secret key base in
  • 如何以 Rails 方式处理 JavaScript 事件(例如“link_to :remote”)?

    我正在使用 Ruby on Rails 4 我想以 Rails 方式处理 JavaScript 事件 也就是说 例如 假设我有以下内容 link to destroy article path article method gt delet
  • MONGODB [DEBUG] 游标的cursor.refresh() 7078636577051629992

    更新大型 json 列表时 出现以下错误 2012 04 01T09 34 00 00 00 app run 1 MONGODB DEBUG cursor refresh for cursor 7078636577051629992 201
  • 渲染:带参数的动作

    我有一个有 2 种方法的类 第一个方法由视图使用一些 GET 参数 params page 调用 我想保存这些参数并通过渲染操作将它们发送到我的第二个方法 class exemple def first sql save of params
  • 自动测试无限循环

    我在 Rails 项目中使用自动测试时遇到了一个问题 即当测试失败时 即 我修改了测试文件并且自动测试自动运行测试 自动测试会不断尝试运行测试 当然每次都会失败 因为文件尚未被修改 而不是等到文件再次保存 当咆哮通知打开时 当我试图修复代码
  • Ruby on Rails - 设计注册链接不起作用 - 未定义方法“user_registration_path”

    这个问题之前已经报告过 但我仍然无法找到解决方案 我已将插件 Devise 安装到我的新 RoR 项目中 当我点击注册链接时 我被重定向到以下路线 http localhost 3000 users registration sign up
  • Rails 4 i18n,如何转换子域用于区域设置的路由

    我正在使用子域来确定 Rails 4 网站中的区域设置 我完全按照我想要的方式使用区域设置切换器 但现在我需要翻译路线 并且我不确定继续的最佳方法 我看过https github com kwi i18n routing https git
  • Ruby 中多维数组的帮助

    我有以下代码将字符串拆分为 3 个字节的组 str hello ix 0 iy 0 bytes tby str each byte do c if iy 3 iy 0 bytes ix tby each index do i bytes i
  • Rails 4 - 如何链接到 PDF 文件(名称.PDF)?

    我正在生成 PDF 文件 我的链接如下所示 当我点击这个时 它会带我去 display invoice 123456789 这是一个 HTML 版本 在控制器中的操作如下 def display invoice if params invo
  • Rails 中的 PDF 导出

    我需要将包含一些图表的 HTML 页面导出为 PDF 有哪些好的 gem 可以做到这一点 PDFKit http railscasts com episodes 220 pdfkit http railscasts com episodes
  • 在私有控制器方法中返回redirect_to

    前言 我正在使用设备进行身份验证 我试图阻止未经授权的用户查看 编辑或更新其他用户的信息 我最关心的是用户将 DOM 中的表单修改为另一个用户的 ID 填写表单 然后单击更新 我已经专门阅读过 像下面这样的东西应该有效 但事实并非如此 SO
  • 使用 Ajax 在输入时提交 Textarea,然后渲染部分内容而不刷新整个页面

    目前我正在尝试通过 JS 和 Ajax 在没有提交按钮的情况下发表评论 并且它有效 问题是当帖子提交时 页面重新加载到 post id comment页面 我希望它呈现部分内容 而不是刷新整个页面或将我带到不同的页面 我对 JS 不熟悉 任
  • 如何向 Time.now 添加两周?

    如何在 Ruby 中向当前 Time now 添加两周 我有一个使用 DataMapper 的小型 Sinatra 项目 在保存之前 我有一个字段填充了当前时间加上两周 但未按需要工作 任何帮助是极大的赞赏 我收到以下错误 NoMethod
  • 在 ec2 上托管 Rails

    我想将 Rails 部署到亚马逊 ec2 上 我看过 poolparty 和 ec2onrails 但似乎都不再维护了 人们用什么来做到这一点 都是自制的木偶和卡皮斯特拉诺 还是有一个项目可以让我继续下去 我可以推荐两个项目 如果您有一个

随机推荐

  • Angular 2 - FormGroup ValueChanges 取消订阅

    我有一个带有 ValueChanges 事件的 FormGroup 当用户从组件的路由移动到另一个组件然后返回到该组件时 该事件不会从内存中释放 这意味着 如果用户离开组件然后返回组件 5 次 则 onFormChange 方法会触发 5
  • 在 IE 和 Chrome 中动态加载 jQuery

    我正在创建一个使用 jQuery 的外部小部件 而不是让用户单独包含它 我想检查它是否已加载 如果没有加载 则动态加载它 问题是我需要等到它加载后才能执行脚本的其余部分 这需要 IE 和 FF Chrome 处理不同的事件处理程序 如果我这
  • 帮助处理 Android 库项目中的自定义视图属性

    我在 Android 库项目中有一个自定义 PieTimer 视图 package com mysite android library pietimer public class PieTimerView extends View 我还有
  • Intel 指令文档中未使用 XMM 寄存器 0

    在 Intel x64 手册中 它说 32 位 SSE2 模式下有 XMM 寄存器 0 7 那么为什么 95 使用这些寄存器的指令会跳过 0 并使用 1 4 例如Intel的vol 2手册entry https www felixclout
  • 如何使用CSS为html字符添加边框颜色?

    我目前的任务是在显示某些数据时在不同颜色的 pandas DataFrame 表内创建检查 我找到了以下内容 p I will display span style color green 10004 span p p I will dis
  • 使用数组 eltype 实现采样器

    钩入rand过去更容易 我想我遵循了描述在文档中 https docs julialang org en v1 stdlib Random A simple sampler without pre computed data 1 但它似乎不
  • 禁止在 robots.txt 中使用动态 URL

    我们的网址是 http example com kitchen knife collection maitre universal cutting boards rana parsley chopper cheese slicer vege
  • 导出 Vim 折叠?

    如何从文件中导出 vim 折叠 以便将其传输到另一台机器 例如 假设我在文件中创建折叠并将其保存在本地计算机上 折叠 元数据去了哪里 我可以将其复制到另一台机器上 还是必须再次手动重新创建折叠 编辑 嗯 我注意到这可能是一个重复的问题 但仍
  • 将 SDP(字符串)拆分为 m 行以更改视频编解码器

    我希望最后有一个方法可以将 VP9 或 H 264 设置为 SDP 中的首选视频编解码器 所以我正在我的 SDP 中寻找 m 行 m video 9 UDP TLS RTP SAVPF 96 98 100 102 127 97 99 101
  • 无法创建Java虚拟机

    面临java虚拟机初始化的一些问题 当我使用root帐户时 我可以正常使用java 但是当我是用户帐户时 它会返回以下错误 user host JAVA HOME bin java version Error occurred during
  • SpriteKit didBeginContact 被调用但没有 didEndContact

    我有以下代码 didBeginContact contact 方法已被调用但未调用didEndContact contact FIXME This is a workaround until class vars are supported
  • 在没有数据库的情况下如何使用 Rails/Devise?

    我正在创建一个不使用数据库的 Rails 应用程序 相反 该模型是使用包装遗留系统的 Ruby API 进行管理的 我有一个 Ruby 调用 可以让我验证用户名 密码组合 在这种情况下是否可以使用 Devise 或其他现成的身份验证解决方案
  • 无法设置远程应答 sdp:无法下推传输描述:无法为通道设置 SSL 角色

    我正在使用 webRTC 构建一个支持音频通话的系统 它的工作原理如下 用户AcreateOffer then setLocalDescription与offer 用户BreceiveOffer then setRemoteDescript
  • 安装 mysql-community-server 时出现 GPG 密钥问题

    安装时mysql 社区服务器出现以下错误 Command sudo yum install mysql community server Error warning var cache yum x86 64 2 mysql57 commun
  • 我什么时候应该使用 PHP 会话、浏览器本地存储和 JavaScript 对象参数?

    什么时候适合使用现代基于 AJAX 的应用程序存储数据的多种不同方式 我希望能够为开发人员提供一些具体的指导方针 这是我到目前为止所看到的 而且越来越混乱 PHP 服务器端会话 PHP 会话数据可能是存储基于会话的信息的最古老的方法 我经常
  • 带有聚合数据的堆叠条形图 (ggplot2)

    我在使用 ggplot2 时遇到一些主要问题 尽管这对你来说可能是一个非常简单的问题 但我还无法正确回答 我读过一本 ggplot2 书 并且也在 stackoverflow 上查找 最初有一个由因子变量 国家 和二分变量组成的数据集 不幸
  • Visual Studio 链接器警告 LNK4098

    我有一个 dll 项目 在发布配置中构建该项目时 我收到以下警告 MSVCRT lib cinitexe obj 警告 LNK4098 默认库 msvcrtd lib 与其他库的使用冲突 使用 NODEFAULTLIB 库 这只是一个警告
  • C# linq 支持“反连接”语义吗?

    我用谷歌搜索了一段时间 没有找到直接的反连接语义示例 以 C LINQ 为例 如何做到这一点 An 反连接基本上 一组不包含在另一组数据中的数据可以表示为Linq与一个IEnumerable Except像这样 double numbers
  • pod install 给出与 ruby​​ gems 和 libffi 相关的错误

    我使用react native init 创建一个应用程序 并在iOS 文件夹中运行pod install 但是 我收到以下错误 System Library Frameworks Ruby framework Versions 2 6 u
  • 在使用 Rails 保存之前将字符串转换为日期

    对 Ruby 很陌生 我已经被困了好几个小时了 到处寻找也找不到答案 所以我使用 Rails gem 的引导日期选择器 因为我更改了日期选择器的日期格式 所以它不会存储在数据库中 猜测这是因为 simple form 输入被用作字符串 以避