“.save”仅在数据库中插入空值

2023-12-06

我正在尝试为一家医院制作 RoR 申请,以便它有患者、医生、办公室等。

我遇到的问题是,在患者“注册”时,我无法将新患者保存在数据库中。事实上,尽管我已经检查过属性没问题(只是一个名字和一个个人ID),但一旦执行该方法,数据库中只出现一个带有“”的新行,而不是实际的属性值。方法如下:

def pat_create

  pName = params[:name].to_s
  id    = params[:pid].to_s.to_i

  pat = Patient.where(:pID => id).first
  if pat == nil
    pat = Patient.new(:name => pName, :pID =>id)
    pat.save
  end

end

另外,这是它构造的查询:

INSERT INTO `patients` (`created_at`, `name`, `pID`, `updated_at`) VALUES ('2013-05-20 02:04:28', NULL, NULL, '2013-05-20 02:04:28')

在其他视图收集以下形式的 :name 和 :pid 信息后调用此方法:

<%= form_tag('/page/pat_create') do %> 
  <%= text_field_tag :name, nil%> 
  <%= text_field_tag :pid, nil%> 
  <%= button_tag(type: "submit", class: "btn btn-success") do %> 
    Register<i class="icon-white icon-plus"></i> 
  <%end%> 
<%end%>

不用说,pat.errors.empty?是真的,也是如此pat.save.

知道为什么会发生这种情况吗?

这是患者模型:

class Patient < ActiveRecord::Base

  attr_accessible :name, :pID
  attr_accessor :name, :pID

  has_many :appointments
  validates_presence_of :name
  validates :name, :format => {:with=> /^[a-zA-Z\s\D]+$/}
  validates_presence_of :pID
  validates_numericality_of :pID
  validates_inclusion_of :pID, :in => 100000..9999999999   

end

删除以下行class Patient:

attr_accessor :name, :pID

发生的事情是这样的attr_accessor 被替换两个数据库列属性:name and :pID(自动生成的)具有自己的属性,产生两个虚拟属性,:name and :pID.

因此,正在设置和验证虚拟属性而不是相应的数据库属性,这导致数据库中没有错误但仍为空值。

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

“.save”仅在数据库中插入空值 的相关文章

  • URL 路由中的点与命名空间 Rails 3.1

    我有这个路线 rb root to gt posts index devise for users controllers gt omniauth callbacks gt users omniauth callbacks resource
  • PHP 和 MySQL - 高效处理多个一对多关系

    我正在寻求一些有关使用 MySQL 和 PHP 检索和显示数据的最佳方法的建议 我有 3 个表 所有一对多关系如下 Each SCHEDULE有很多覆盖每个覆盖都有很多地点 我想检索这些数据 以便它可以全部显示在单个 PHP 页面上 例如列
  • 启动同一作业的多个延迟作业进程

    我在运行多个工作人员的设置中使用延迟作业 就我的问题而言 这并不重要 但假设我运行 10 个工作线程 当前在开发模式下执行此操作 我遇到的问题是两个不同的工作人员有时开始处理同一项工作 调用我的工作对象上的执行方法 据我所知 延迟作业正在使
  • Capistrano:deploy.rb 文件重构

    我的deploy rb中有以下代码 namespace app do desc copies the configuration frile from shared config yml to config task copy config
  • 错误代码:1305。函数或过程不存在

    因此 我在 MySQL 中创建一个函数 然后尝试向用户授予使用该函数的权限 但我无法这样做 这就是我正在做的 DELIMITER USE rxhelp36 scbn DROP FUNCTION IF EXISTS businessDayDi
  • 在 jQuery AJAX 成功中从 MySql 获取特定响应

    好吧 我有这个 ajax 代码 它将在 Success 块中返回 MySql 的结果 ajax type POST url index php success function data alert data My Query sql SE
  • 让登录更安全

    我已使用此代码进行管理员登录 仅当用户输入正确的用户名和密码时才应打开loginhome php 但后来我意识到这根本不安全 任何人都可以直接访问 mywebsite loginhome php 而无需登录 注销后 可以使用后退按钮打开 l
  • 如何使用国家宝石

    我正在尝试使用国家宝石 https github com hexorx countries 但是在我捆绑安装这个 gem 后 有一些关于如何合并它的基本问题 我是否需要创建新的控制器 模型才能访问这些国家 地区 如何创建一个简单的选择下拉列
  • Mysql用in语句限制

    我正在写一个查询 SELECT user bookmarks id as user bookmark id bookmark id user bookmarks user id bookmark url bookmark website b
  • 我应该如何使用 alias_method_chain 作为构建方法?

    我正在使用 Ruby on Rails 3 2 13 我想正确使用alias method chain build option name声明 因为我收到一个奇怪的错误 那是 在我的控制器文件中我有 class Articles Comme
  • <%=h ... %> 在 Rails 中意味着什么?

    I found here http api rubyonrails org classes ActionView Helpers RecordTagHelper html以下语法 什么是h means 它用于转义标签的输出以避免跨站点脚本
  • MYSQL - 使用逗号分隔字符串作为变量输入的存储过程

    我希望有人能够提供帮助 我已经创建了我的第一个存储过程 没什么花哨的 但是我遇到了问题 我想给它一个字符串输入 例如 1 2 3 4 5 然后它执行一个简单的操作SELECT FROM TABLE WHERE EAN IN VAR 所以存储
  • MYSQL从每个类别中随机选择一条记录

    我有一个数据库Items表看起来像这样 id name category int 有几十万条记录 每个item可以是 7 种不同的之一categories 对应于categories table id category 我想要一个从每个类别
  • PHP 与 MySQL 查询性能( if 、 函数 )

    我只看到这个artice http www onextrapixel com 2010 06 23 mysql has functions part 5 php vs mysql performance 我需要知道在这种情况下什么是最好的表
  • 在 android 中建立与 MySQL 的池连接

    我需要从我的 Android 应用程序访问 MySQL 数据库 现在所有的工作都通过 DriverManager getConnection url 等等 但我必须从多个线程访问数据库 所以我必须使用连接池 问题1 是 com mysql
  • mysql排序和排名语句

    我需要一些 mysql 语句的帮助 我的表 1 有 7 列 表 2 有 8 列 额外的列名为排名 我的语句应该是这样的 从表 1 中选择全部 然后按 用户数 排序 将其插入表 2 中并排名开始 1 2 3 等 table 1 usernam
  • 子域中的 Rails url 助手 - 删除子域

    我网站上的用户可以拥有子域 例如 他们的页面网址是 name example com 登录的用户可以查看更多用户信息 因此在用户的显示页面上 我有一个使用以下代码生成的链接 user url user subdomain gt false
  • 查找 Rails 应用程序中未使用的代码

    如何查找正在运行和未运行的代码生产中 该应用程序经过充分测试 但还有很多测试unused代码 因此 他们在运行测试时得到覆盖 我想重构并清理这个烂摊子 它一直在浪费我的时间 我有很多后台工作 这就是为什么我希望生产环境来指导我 在 Hero
  • 将记录批量插入到 Active Record 表中

    我发现我的Model create 当我一次添加大量记录时 语句需要很长时间才能运行 看着ActiveRecord 导入 https github com zdennis activerecord import wiki但它不适用于哈希数组
  • post php mysql 的拆分关键字

    我有一个表存储帖子 ID 它的标签如下 Post id Tags 1 keyword1 keyword2 keyword3 我想循环遍历该表中的每一行并执行以下操作 将关键字1 关键字2 关键字3放入新表中 word id word val

随机推荐

  • PHP Xpath 提取属性 name="author" 的节点的值

    我正在尝试解析一些 XML 数据以获取某个属性的值 具体来说 我想找到作者 下面是一个非常精简但有效的示例 这R节点重复多次
  • 如何在 pandas DataFrame 中存储行名称和列索引?

    我有一个DataFrame with named行和列索引 import numpy as np import pandas as pd I pd Index a b c d name rows C pd Index col0 col1 c
  • PerformSelectorInBackground 和 NSOperation 子类之间的区别

    我创建了一个用于运行深度计数器循环的测试应用程序 我分别使用performSelector In Background 和 NSOperation 子类在后台线程中运行循环函数 我还使用performSelectorOnMainThread
  • 局部变量还是直接语句?

    我目前正在学习C 我真的很想从一开始就获得良好的编码风格 所以我想听听你们专业人士对这个问题的意见 您是否应该始终 或大部分 使用局部变量进行条件 计算 示例 2 还是直接使用语句同样好 更好 示例 1 示例 1 if double Try
  • 响应中的“Access-Control-Allow-Credentials”标头为“”,必须为“true”

    我在后端使用 Node Express 在客户端使用 Angular4 这给了我以下错误 XMLHttpRequest 无法加载http localhost 4876 登录 检查 对预检请求的响应未通过访问控制检查 响应中 Access C
  • 组合框中的两个项目相同,但第一个总是被选中 C#

    我的 Windows 窗体应用程序上的组合框遇到了非常奇怪的问题 因此 我的组合框是使用数据源填充的 它显示人员姓名 并将其 ID 保存为 cmbRequestor ValueMember public BindingSource requ
  • 搜索文件时 Google Drive API 调用出现问题

    如果您在云端硬盘中创建一个名为 HelloWorld 的文件 然后进行以下 API 调用 https www googleapis com drive v2 files q title contains 世界 该文件不会出现在结果中 它在
  • 安全擦除文件内容

    如何安全删除文件内容 我的意思是数据应该被不可恢复地擦除 因此即使有人 入侵者 取消删除已删除的文件 人们也可能会发现垃圾而不是真正的数据 实际上 您确实不能 因为您不知道使用哪种介质进行存储以及其块是否可以可靠地覆盖 对于包含闪存的移动设
  • 并发连接后 SQL Azure 连接问题

    SQL Azure 数据库上可以建立的并发连接数是否有限制 这就是我面临的情况 我有一个网站 托管在 Windows Server 2008 R2 虚拟机上 许多用户将连接到该虚拟机 并且数据库是在 SQL azure 中创建的 我们观察到
  • 如何通过 iso_c_binding 从 Fortran 调用的 C 函数接收字符串?

    我想从 Fortran 调用 C 函数并接收 C 函数中定义的字符串 我进行了搜索 但到目前为止我找不到有效的 直接的答案 实际上我找到了一个解决方法 接收字符数组 然后使用内部函数transfer将结果放入 Fortran 字符串中 这是
  • Julia 错误:LoadError:ArgumentError:Package xxxx 的依赖项中没有 ExcelReaders:

    所以我从 v0 6 升级到了 Julia v0 7 我正在尝试转换我的代码 我收到以下错误 ERROR LoadError LoadError ArgumentError Package xxx does not have ExcelRea
  • 嵌套函数在 gcc 中是坏事吗? [关闭]

    Closed 这个问题是基于意见的 目前不接受答案 我知道嵌套函数不是标准 C 的一部分 但由于它们存在于 gcc 中 并且 gcc 是我唯一关心的编译器这一事实 所以我倾向于经常使用它们 这是坏事吗 如果是这样 你能给我看一些令人讨厌的例
  • 我可以同时选择和更新吗?

    这是对我正在做的事情的过于简单的解释 我有一个带有状态列的表 应用程序的多个实例将提取第一行的内容 状态为NEW 将状态更新为WORKING然后继续处理内容 通过两次数据库调用即可轻松完成此操作 首先是SELECT那么UPDATE 但我想在
  • 有没有一种方法可以使用 Apache Beam FileIO 为每条记录写入一个文件?

    我正在学习 Apache Beam 并尝试实现类似于 distcp 的东西 我使用 FileIO read filepattern 来获取输入文件 但是在使用 FileIO write 写入时 文件有时会合并 在作业执行之前知道分区计数是不
  • 溢出:隐藏在 Google Chrome 中未按预期工作

    我遇到了 overflow hidden CSS 属性的问题 在 Firefox IE8 和 Safari 5 中 当我将此属性应用于内容顶部用于包含广告横幅 如 adsense 排行榜或 flash 的 div 时 当窗口大小调整为足够小
  • 检测 jQuery 中的输入变化?

    使用jquery时 change on an input仅当输入失去焦点时才会触发该事件 就我而言 一旦输入值发生更改 我需要立即调用服务 检查值是否有效 我怎样才能做到这一点 更新了澄清和示例 例子 http jsfiddle net p
  • Selenium IDE 浏览器插件 3.1.0

    我已经安装了新的 Selenium IDE 3 1 0 Firefox 插件 但我找不到任何工具来导出测试 以便从 Python 驱动程序运行它们 我缺少什么 搜索 SO 仅返回旧版 IDE 的建议 但不返回新 Web 浏览器插件的建议 N
  • java中的位运算符仅适用于整数和长整型?

    我在Eclipse中编写了以下代码 byte b 10 some other operations b b Eclipse 希望在按位补码行中将其强制转换为字节 它说 类型不匹配 无法从 int 转换为 byte 我还尝试了其他按位运算和其
  • SIGSEGV 由“kill”生成时是否特殊?

    我知道SIGSEGV当内核使用它来报告内存访问冲突时 不能忽略它 但是如果我安装一个信号处理程序SIGSEGV什么都不做 然后另一个进程使用kill向我发送该信号 其行为是否与我使用 正常 信号相同 例如SIGUSR1 反而 Grijesh
  • “.save”仅在数据库中插入空值

    我正在尝试为一家医院制作 RoR 申请 以便它有患者 医生 办公室等 我遇到的问题是 在患者 注册 时 我无法将新患者保存在数据库中 事实上 尽管我已经检查过属性没问题 只是一个名字和一个个人ID 但一旦执行该方法 数据库中只出现一个带有