4

我在Rails 3.1应用程序中使用gem nested_form。问题是,当我点击由“link_to_add”生成的链接时,它显示部分两次,而它应该只显示一次。你去那里一些代码:nested_form显示部分两次

形式:

<%= nested_form_for @product, :html => {:multipart => true} do |f| %> 

    <%= f.fields_for :safety_info_files %> 
    # adds a link for displaying the template 
    <%= f.link_to_add "Add file", :safety_info_files %> 
    <div class="actions"> 
    <%= f.submit %> 
    </div> 
<% end %> 

模板:

<div class="fields"> 
    <%= f.link_to_remove "remove" %><br /> 
    <%= f.label :doc, "File" %> 
    <%= f.file_field :doc %><br /> 
</div> 

别的任何人有同样的问题?

编辑:

愚蠢的错误,愚蠢的我。对不起,如果我让你们中的一些人浪费时间,问题是我加载了两次“nested_form.js”,所以它调用了附加部分相同次数的函数。

对不起。

+0

你是如何解决的加载两次?是文件的两个副本,还是链接相关的? – ZMorek

+0

ZMorek这是一个非常愚蠢的错误,我在application.js中需要nested_forms.js(通过'require_tree。'),然后明确地再次加载它(使用javascript_include_tag)。你有类似的问题吗? – davids

+0

我把'nested_forms.js'放到'/ vendor/assets/javascripts /'中,好像它加载了两次。我没有添加标签,但它在我的'application.js'中。我已经修好了几次,我想我可能需要尝试更多的变体,删除编译后的文件,然后重新编译。运行“rails g nested_form:install”的 – ZMorek

回答

4

愚蠢的错误,愚蠢的我。对不起,如果我让你们中的一些人浪费时间,问题是我加载了两次“nested_form.js”,所以它调用了附加部分相同次数的函数。

0

我面临同样的问题。

我已将nested_form.js包含在我的应用程序布局文件中。

而且我还没有改变我的app/assets/javascripts/application.js文件,它是在创建rails应用程序时创建的。

当我从应用程序布局中删除条目时,问题就解决了。

1

对于那些使用rails 4/turbolinks而未找到包含两次nested_form.js的此问题,请尝试从application.js中删除turbolinks。一旦我做到了这一点,并退回服务器这个问题已解决。

信用这里:https://github.com/ryanb/nested_form/issues/307