我有两个型号,
formtastic gem
我使用edit
,请users_controller
user
行动。表单的所有必需posts
和关联的<%= semantic_form_for @user do |f| %>
<%= f.input :name %>
<%= f.inputs :posts do |p| %>
<%= p.input :title %>
<%= p.input :comment %>
<% end %>
<% end %>
属性将以formtastic形式预先填写
代码:
@user
例如,我有一个posts
和两个@user.posts
相关联。
在做 [
[0] #<Post:0x0000000aa53a20> {
:id => 3,
:title => 'Hello World',
:comment => 'Long text comes here'
},
[1] #<Post:0x0000000aa53a41> {
:id => 5,
:title => 'Hello World 2',
:comment => 'Long text comes here too'
}
]
时,结果就像。
post
因此表单将包含两个要编辑的帖子字段。
实际上,我想在这两个帖子之前再张一张空白帖子。
通过在{0}位置向@object.posts
结果插入新的空@object.posts
个对象,可以轻松实现此目的。
所以,我想要的 [
[0] #<Post:0x0000000aa53a50> {
:id => nil,
:title => nil,
:comment => nil
},
[1] #<Post:0x0000000aa53a20> {
:id => 3,
:title => 'Hello World',
:comment => 'Long text comes here'
},
[2] #<Post:0x0000000aa53a41> {
:id => 5,
:title => 'Hello World 2',
:comment => 'Long text comes here too'
}
]
结果应该看起来像,
@user.posts
从{{1}}获得此结构的任何解决方案?
答案 0 :(得分:2)
在#edit
操作中执行以下操作:
def edit
#... your code
@user.posts << Post.new
end