使用CRUD的嵌套模型的Ajax

时间:2012-03-26 11:47:33

标签: ruby-on-rails ajax ruby-on-rails-3 jquery

我在Nested Model Form上提到了来自Railscast的这个很棒的教程。一切都很好。但是,我注意到我需要所有添加/删除的Ajax功能。

我有一个3级嵌套模型。 CountryStatesShops。例如:

United States
|__ California
    |__ Shop A
    |__ Shop B
    |__ (Add new shop)
|__ New York
    |__ Shop C
    |__ Shop D
    |__ (Add new shop)
(Add new state)

我已阅读并搜索了所有可用的教程,但似乎没有任何内容符合我的目的。它们主要提供动态添加/删除项目的方式,但不与服务器交互。我希望在单击链接Add...后,用户将能够输入信息并单击该特定子表单的Submit按钮,并将其保存到数据库中。同样适用于Remove,只需点击x即可立即删除。

如果创建一个新的Country也可能是ajaxed将会很棒。但就目前而言,我正在采用两步法。首先,用户创建Country,点击Next后,它会保存到数据库并重定向到编辑页面。在编辑页面的视图中,它会检查是否.new_record?,然后显示其余的子表单。

根据您的建议,您可以仅参考上面给出的链接中的代码。仅这一点就足够了。非常感谢你的帮助,因为我已经偶然发现了几个星期。

非常感谢!

1 个答案:

答案 0 :(得分:0)

要考虑的事情。如果您使用RESTful操作执行此操作(默认),当用户单击“添加”时,它将必须发送方法=> :岗位。但是当用户点击“X”时,它必须发送一个方法=> :删除。当然,正常的选择商店C将是一种方法=> :得到。由于http方法附加到表单,您将不得不动态切换 - 在Javascript?除非您可以覆盖路径文件中的默认其余动词。

同样,添加,获取和删除都会在控制器上使用不同的方法,因此您必须手动调用它们。

这似乎意味着您应该放弃使用表单或选择标记,只需构建一个ajaxy列表,并添加和删除添加和删除链接。