Cho*_*ett 9 activemodel ruby-on-rails-3
我无法fields_for
开始处理非ActiveRecord模型的Array属性.
蒸馏下来,我必须遵循:
车型/ parent.rb
class Parent
extend ActiveModel::Naming
include ActiveModel::Conversion
include ActiveModel::Validations
extend ActiveModel::Translation
attr_accessor :bars
end
Run Code Online (Sandbox Code Playgroud)
控制器/ parent_controller.rb
def new_parent
@parent = Parent.new
@parent.bars = ["hello", "world"]
render 'new_parent'
end
Run Code Online (Sandbox Code Playgroud)
意见/ new_parent.html.haml
= form_for @parent, :url => new_parent_path do |f|
= f.fields_for :bars, @parent.bars do |r|
= r.object.inspect
Run Code Online (Sandbox Code Playgroud)
使用上面的代码,我的页面包含["hello", "world"]
- 也就是inspect
调用分配给的数组的结果bars
.(@parent.bars
省略了fields_for
,我只是nil
显示).
如何使fields_for
AR关联成为行为 - 也就是说,对于我的bars
数组的每个成员,在块中执行一次代码?
Cho*_*ett 11
我认为正确的技术是:
= form_for @parent, :url => new_parent_path do |f|
- @parent.bars.each do |bar|
= f.fields_for "bars[]", bar do |r|
= r.object.inspect
Run Code Online (Sandbox Code Playgroud)
为什么它不能成为Just Work我不确定,但这似乎可以解决问题.
归档时间: |
|
查看次数: |
4232 次 |
最近记录: |