“.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”仅在数据库中插入空值 的相关文章

随机推荐

  • 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 但一旦执行该方法 数据库中只出现一个带有