现在的情况是这样的:我有一個 A model has many B model, B model belongs_to A model,在创建 A 的时候,可以按一个 link 通过 ajax 请求创建一个或者多个 B,保存到数据库里,但是问题是,在通过 ajax 请求创建 B 的时候,B model 里面的 a_id 字段还没有生成出来,请问,对于这种情况,我该怎么处理?
user has_many :posts post belongs_to :user
then
user.posts.new()
#1 楼 @loveky ajax 請求發給的是 Post#Create,然而這個時候 User 表单还没有被提交,所以 User 还没有被保存在数据库里。这个时候如果用 user.post.create() 不知道是否可以?
创建 B,不关联 A,返回 B 的 id,存在 A 表单的隐藏字段,等 A 提交的时候才关联上。
#3 楼 @Rei 如果创建 B 后,user 离开页面了,不提交 A 表单,那创建的 B 对象就没爹没娘了吧,
#4 楼 @loveky 定期清理
ok,返回 B 的 id,存在 A 表单的隐藏字段确实挺巧妙的
返回 B 的 id,存在 A 表单的隐藏字段
我是按着 LZ 思路提的方案,适合文章分类这种异步创建,但是创建了就有效的数据。
如果 B 脱离 A 就无效的,可以提交 A 表单的时候才一起创建。
謝謝各位,特別是@Rei ,我已經知道該怎麼做了。
是不是先把 B 放到一个临时表里更好一点
可以先在前面构造数据嘛,最后在一起提交保存,父都还没创建,哪里来子呢