Rails new 关联 Model 时使用 ajax 的问题

Pitt · 2013年07月15日 · 最后由 mouse_lin 回复于 2013年07月16日 · 2030 次阅读

现在的情况是这样的:我有一個 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 对象就没爹没娘了吧,

ok,返回 B 的 id,存在 A 表单的隐藏字段确实挺巧妙的

我是按着 LZ 思路提的方案,适合文章分类这种异步创建,但是创建了就有效的数据。

如果 B 脱离 A 就无效的,可以提交 A 表单的时候才一起创建。

謝謝各位,特別是@Rei ,我已經知道該怎麼做了。

是不是先把 B 放到一个临时表里更好一点

可以先在前面构造数据嘛,最后在一起提交保存,父都还没创建,哪里来子呢

需要 登录 后方可回复, 如果你还没有账号请 注册新账号