我按照“railstutorial.org”示例创建属于“Tickets”的“Logs”。IE。1“票”有许多“日志”。我可以在 CONSOLE 添加“票证”。但是,当我尝试添加“日志”时,我收到错误消息“票证不能为空白”。(请看下面的附图)我想知道你能否给我一些建议/指点?先感谢您。2012-09-03 更新:我添加了模型的图片。非常感谢。
2012-09-05 更新:更新模型以使用整数作为 ticket_id
我按照“railstutorial.org”示例创建属于“Tickets”的“Logs”。IE。1“票”有许多“日志”。我可以在 CONSOLE 添加“票证”。但是,当我尝试添加“日志”时,我收到错误消息“票证不能为空白”。(请看下面的附图)我想知道你能否给我一些建议/指点?先感谢您。2012-09-03 更新:我添加了模型的图片。非常感谢。
2012-09-05 更新:更新模型以使用整数作为 ticket_id
当您执行 Ticket.new 或 Ticket.first 时,检查正在显示的属性。根据此处显示的代码,对于 Ticket 模型,您创建了一个列 ticket_id,rails 负责 id 的生成,这个属性可以考虑 -
约定优于配置
生成的 id 将作为主键,可用于从 Logs 引用 Ticket。
找到了根本原因。这是因为 ":ticket_id" 没有添加到 "log.rb" 中的 "attr_accessible" 中,在 "log.rb" 中将 ":ticket_id" 添加到 "attr_accessible" 后问题就消失了。(请看下图)。
还在下面的链接中了解了“attr_accessible”。 http://madkingsmusings.blogspot.tw/2011/04/attraccessible-and-security-in-rails.html
第一个变化:
更改您的迁移并将外键设为整数。使用t.integer :ticket_id
使外键命名明显而明确。
t.integer :ticket_id
第二:现在尝试保存值
obj = Ticket.first
Log.create!(:ticket_id => obj.id)