我正在开展一个学校项目,我是ROR的新手。我有两个对象,收据和主题。收据有一个主题,主题在收据中重复使用。如果我的收据数量相同,我不会遇到问题,但是当我没有为收据创建新主题时,我会收到此错误
这里的问题是我在数据库中只有两个主题,有3个收据。所以id为3无效。我的模型,视图,控制器和迁移都在跟随。
型号: 类收据< ActiveRecord :: Base belongs_to:user has_one:subject,:foreign_key => :id validates:user_id,presence:true validates:descript,presence:true,length:{minimum:4,maximum:120} end
类主题< ActiveRecord :: Base has_many:收据验证:subject_name,presence:true,length:{minimum:2,maximum:30} validates:description,presence:true,length:{minimum:2,maximum:200} end
控制器: def index @receipts = Receipt.paginate(page:params [:page],per_page:4).order(" updated_at DESC")end
迁移: class CreateReceipts< ActiveRecord :: Migration def change create_table:receipts do | t | t.datetime:date t.decimal:tax_amount,:purchase_amount,precision:5,scale:2 t.boolean:approved,default:false t.text:descript t.integer:user_id,:subject_id,t.timestamps end end end
class CreateSubjects< ActiveRecord :: Migration def change create_table:subject do | t | t.string:subject_name t.text:description t.timestamps end end end
查看:
我认为我的迁移和观点很好,因为当我有相同的收据时,它可以正常工作,