【问题标题】:How to I serve data from an object's associations in rails forms?如何在 Rails 表单中提供来自对象关联的数据?
【发布时间】:2012-01-06 03:01:45
【问题描述】:

我有一个对象,我正在为其开发一个具有许多属性的控制器。但是,由于我创建的数据模型,我必须编辑的大多数属性都是通过其他表中的关联保存的。 EG:我的文章通过标签表(以及其他表中保存的大约 20 个其他属性)具有标签。该文章通过多态关联等具有许多其他属性。

关联效果很好,可以保存每个属性的多个条目。然而,困难的一件事是简化控制器的编辑操作。通常你可以保存 @article = Article.find(params[:id]) 并且所有的属性都会显示出来。这意味着表单具有提供的当前属性,并且该人可以进行更改。

但是,对于通过关联保存的内容,这些字段为空。我有一个 shiv 解决方案,例如,@article.tag_list = @article.tags.map(&:name)。这让该字段现在可以显示标签。

但是,为每个属性执行此操作会在控制器中的编辑操作中添加很多行。有没有更好的办法?

如果有一些我应该发布的代码,我可以——只是没有发布,因为它现在很乱,所以我想我会解释一下。

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 associations polymorphic-associations


    【解决方案1】:

    您想要的是“急切地加载”关联——这只是意味着在加载时将关联与基础对象一起填充。查看this 页面上的“急切加载关联”部分。

    【讨论】:

    • 嗯遇到了一些麻烦。如果我使用伪字段,即 tag_list 来显示所有标签,则急切加载无法识别获取关联的标签并按名称映射。 IE 我可以在控制器中编写 @discussion.tag_list = @discussion.tags.map(&:name) 来解决这个问题。但由于我有 20 多个类似的字段,我正在寻找一个更优雅的解决方案。想法?
    • 请看这个后续问题stackoverflow.com/questions/8766575/…
    猜你喜欢
    • 2022-10-21
    • 2011-12-27
    • 2021-08-30
    • 1970-01-01
    • 2017-08-09
    • 1970-01-01
    • 1970-01-01
    • 2017-12-20
    • 1970-01-01
    相关资源
    最近更新 更多