has_many :through 和 FormBuilder.fields_for
我有一个类 Bar
,它有一个用户定义的配置键和值列表,定义如下:
class Bar < ActiveRecord::Base
has_many :config_keys, :through => Foo
has_many :config_values
end
因此可用的配置键来自 Foo
类以及它们来自 Bar
类。
我正在为此 Bar 类创建一个表单,并且需要使用 name
属性作为标签来循环 config_keys
中的每个字段,但文本框应该是对于 config_values
的 value
我所看到的是,如果我这样做,
我认为集合上的 f.fields_for
会执行循环为我。
我以正确的方式处理这个问题吗?感觉就像我真的在与框架作斗争。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我最终让它工作,但关键是不要使用 f.fields_for bar.config_keys ...相反,我确保每个键都存在一个值记录(在我的模型上的 before_save 上),我这样做而是值集合的嵌套形式。
不过,我仍然不确定为什么表单生成器的对象是一个数组。
I ended up getting this to work, but the key was don't use f.fields_for bar.config_keys... instead I make sure that a value record exists for each of the keys (on a before_save on my model) and I do the nested form for the values collection instead.
I'm still not sure why that form builder's object was an array, though.