如何在Rails中使用表单选择输入来进行多态的belongs_to关联?

时间:2012-02-21 02:00:29

标签: ruby-on-rails forms activerecord ruby-on-rails-3.1 polymorphic-associations

我有一个具有多态belongs_to关联(资源)的文章模型。我一直试图让它通过两个选择框从文章表单中设置关联,一个是类型,另一个是关联id,如下所示。

= form_for @article do
  = f.select :resource_type, ...
  = f.grouped_collection_select :resource_id, ...

我的问题是,如果两个关联模型中存在关联ID,则它不会在grouped_collection_select中选择正确的模型。

必须有更好的方法来做到这一点,但我现在似乎无法看到它。

1 个答案:

答案 0 :(得分:1)

处理它的一种方法是允许使用javascript函数在资源之间切换。您有一个绑定到javascript函数的链接,该函数将一个资源选择框交换为另一个。

有一个描述如何执行此操作的railscast。忽略嵌套表单并添加/删除业务并专注于基本要素(javascript绑定链接,帮助方法等):http://railscasts.com/episodes/197-nested-model-form-part-2