【发布时间】:2013-05-20 02:47:53
【问题描述】:
我正在尝试为一家医院制作 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
【问题讨论】:
-
您可以发布您的患者模型吗?
-
调用.save!你会得到一个错误解释正在发生的事情。
-
@Larry 我刚刚用 Patient Model 编辑了帖子,还调用了 .save!但没有错误,我应该在哪里查看这个错误?看看患者是如何创建的Image
-
如果您查看您的 rails 服务器的输出,您应该会确切地看到正在发生的事情。它试图保存什么值,如果发生任何错误并且保存回滚,等等。
-
您能否确认每次您尝试保存时都会在数据库中看到一个带有空值的新条目?
标签: mysql ruby-on-rails ruby-on-rails-3.2