2

我按照“railstutorial.org”示例创建属于“Tickets”的“Logs”。IE。1“票”有许多“日志”。我可以在 CONSOLE 添加“票证”。但是,当我尝试添加“日志”时,我收到错误消息“票证不能为空白”。(请看下面的附图)我想知道你能否给我一些建议/指点?先感谢您。2012-09-03 更新:我添加了模型的图片。非常感谢。 图像3 图像1 img2 模型

2012-09-05 更新:更新模型以使用整数作为 ticket_id 20120905

4

3 回答 3

1

当您执行 Ticket.new 或 Ticket.first 时,检查正在显示的属性。根据此处显示的代码,对于 Ticket 模型,您创建了一个列 ticket_id,rails 负责 id 的生成,这个属性可以考虑 -

约定优于配置

生成的 id 将作为主键,可用于从 Logs 引用 Ticket。

于 2012-09-02T06:10:25.797 回答
1

找到了根本原因。这是因为 ":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 1 2

于 2012-09-08T05:02:34.390 回答
0

第一个变化:

更改您的迁移并将外键设为整数。使用t.integer :ticket_id使外键命名明显而明确。

t.integer :ticket_id

第二:现在尝试保存值

obj = Ticket.first
Log.create!(:ticket_id => obj.id)
于 2012-09-02T06:17:46.733 回答