如何在Rails中的“编辑”表单中映射关联数据?

这是如何从rails表单中的对象关联提供数据的后续行动?

我想知道,我想使用急切加载来为文章对象的编辑页面提供标签(以及通过关联表格保存的其他属性。在上一个问题中,我被告知我可以使用预先加载预加载该数据的关联。控制器中的IE我扩充.find调用include

@article = Article.find(params[:id], :include => [:tags]) 

这将是很好的,除了它有两个主要的警告。 首先是它为表格中的字段提供对象。 因此,在此示例中,编辑表单中的:tags字段将填充:

 [#] 

而不是

 Wondering 

第二个警告是我无法将这些关联提供给自定义字段。 例如,我没有:tags字段,而是有一个:tag_list字段。 在创建文章时,用户在此输入多个标签。 在编辑时,:标签不会按名称映射并放入tag_list字段。 我总是可以将此行添加到控制器:

 @article.tag_list = @article.tags.map(&:name) 

但我正在寻找一个更优雅的解决方案,因为我有很多字段,我必须写这个,这似乎浪费了代码行。

有人可以帮忙吗?

查看有关虚拟属性的 Railscast。 我很确定这会让你的生活更轻松。

实际上,这几乎是你的问题。 好莱恩贝茨。