如何在没有link_to的情况下实现Remote:True功能?

2022-06-09 00:00:00 ruby-on-rails javascript simple-form

我正在尝试实现嵌套模型,以下是路由文件条目:

resources :projects do
  resources :instances
end

以下是项目控制器的代码片段:

# GET /projects/new
def new
  @project = Project.new
  @project.instances.build
end

和项目的窗体视图:

<%= simple_form_for(@project) do |f| %>
  ...
  <%= label_tag :instance_count, "Instance Count" %>
  <%= select_tag :instance_count, options_for_select([0, 1, 2, 3, 4, 5], 0) %>
  ...
<% end %>
现在,当我更改实例计数的数量时,我需要在上面的表单下面多次显示实例字段。以下是其中的部分代码:

<%= form.simple_fields_for :instances do |i| %>
  ...  
<% end %>
基本上我需要从项目的javascript文件中调用<%= render 'instances/form', form: f %>。它应该像使用remote: true选项链接一样工作。但在这种情况下没有链接,但在发生更改事件时,需要显示表单。我应该如何实现这一点?


解决方案

我建议您使用https://github.com/nathanvda/cocoon

或者您可以使用类似的方法:以初始形式呈现部分(Display:None),然后使用js删除并保存部分字段,并在点击选择器时将它们克隆到表单中。

相关文章