小编ste*_*ein的帖子

在Rails partial中生成动态子行

我使用嵌套属性Railscast作为指南实现了嵌套属性表单.因此,用户可以单击图标以动态地将"子"行添加到我的视图中.

不幸的是,我只能使这项工作在我看来,(说明最后一个图标在这里).此图标在我的视图中生成,但其他图标在用于呈现每一行的partial中生成.

是否有可能做到这一点?如果是这样,最好的方法是什么?

这是我最近的尝试.

表格has_many插槽.在工作表编辑视图中,我使用工作表构建器构建器(sheet)来渲染我的插槽部分,并将其传递给帮助程序link_to_add_fields,该帮助程序呈现一个链接,该链接将在单击时生成新行(此部分工作正常).你会注意到我也试图传递sheet给部分,所以我可以link_to_add_fields从那里打电话,但这是它发生故障的地方:

观点 - edit.html.haml:

= sheet.fields_for :slots do |builder|
  = render 'slots/edit_fields', f: builder, sheet:sheet
= link_to_add_fields image_tag("plus.jpg", size:"18x18", alt:"Plus"), sheet, :slots, 'slots/edit'
Run Code Online (Sandbox Code Playgroud)

部分 - _edit_fields.html.haml:

- random_id = SecureRandom.uuid
.row.signup{:id => "edit-slot-#{random_id}"}
  .col-md-1
    %span.plus-icon
      = link_to_add_fields image_tag("plus.jpg", size:"18x18", alt:"Plus"), sheet, :slots, 'slots/edit'
    %span.minus-icon
      = image_tag "minus.jpg", size:"18x18", alt:"Minus"
  .col-md-2= f.text_field :label
  ... other fields ...
Run Code Online (Sandbox Code Playgroud)

辅助方法:

def link_to_add_fields(name, f, …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails nested-attributes railscasts ruby-on-rails-4.2

6
推荐指数
2
解决办法
1138
查看次数