如何在没有link_to的情况下实现远程:true功能?

Raj*_*hra 10 javascript ruby-on-rails simple-form

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

resources :projects do
  resources :instances
end
Run Code Online (Sandbox Code Playgroud)

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

# GET /projects/new
def new
  @project = Project.new
  @project.instances.build
end
Run Code Online (Sandbox Code Playgroud)

和项目的表单视图:

<%= 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 %>
Run Code Online (Sandbox Code Playgroud)

现在,当我更改实例计数时,我需要在上面的表单下面多次显示实例字段.这是部分代码:

<%= form.simple_fields_for :instances do |i| %>
  ...  
<% end %>
Run Code Online (Sandbox Code Playgroud)

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

My *_*ear 0

您必须调用一次服务器端代码,因为instances/form包含只能在服务器端呈现的代码。
首先,您必须执行ajax调用(例如instance_new_path),然后您必须在该视图(instance_new.js.erb)上呈现表单。

示例.js.erb

$("#new_form").html("<%= escape_javascript(render partial: 'instances/form' ) %>");
Run Code Online (Sandbox Code Playgroud)