Railscast 197,第2部分:如何删除Rails 3中的一组字段?

时间:2012-06-04 18:03:52

标签: jquery ruby-on-rails ruby-on-rails-3 forms

我正在按照此视频中的说明在Rails 3中构建表单:http://railscasts.com/episodes/197-nested-model-form-part-2

我的表单与视频中的表单有一个主要区别:我不希望能够删除表单上的一个字段,我希望能够从表单中删除一组字段。该组包含以下字段:“人数”,“性别”,“种族”,“年龄”。我能够使用本视频系列第1部分中的复选框删除这组字段,但由于我添加了jquery功能,因此无法使用。

有什么建议吗?

new.html.erb

<%= f.fields_for :audiences do |builder| %>
<div class="audiencefields">

<%= builder.hidden_field :_destroy %>
<%= link_to_function "remove", "remove_fields(this)" %>
<p>
    <%= builder.label :number_of_people %><br />
    <%= builder.text_field :number_of_people %>
</p>
<p>
    <%= builder.label :gender %><br />
    <%= builder.text_field :gender %>
</p>
<p>
    <%= builder.label :ethnicity %><br />
    <%= builder.text_field :ethnicity %>
</p>
<p>
    <%= builder.label :age %><br />
    <%= builder.text_field :age %>
</p>
</div>
<% end %>

的application.js

function remove_fields (link) {
        $(link).previous("input[type=hidden]").value = "1";
        $(link).up(".audiencefields").hide();
    }    

2 个答案:

答案 0 :(得分:1)

我花了一些时间试图解决这个问题,但是找不到解决方案,因为这个railscast似乎已经过时了Rails 3.我最终安装了Nested Form gem,它的工作效果非常好:{{3 }}

答案 1 :(得分:0)

我相信你的jQuery尝试使用http://api.jquery.com来查找一些函数。我想你可能在寻找

$(link).prev("input[type=hidden]").val = "1"
$(link).slideUp("audiencefields")

或类似的东西。您可能正在寻找$(link).prev()。css(“hidden”,true)。不完全确定,但有可能。检查firebug以确保您使用的所有方法都是jQuery的一部分。

另外,确保所有jQuery都在$(document).ready();或者它可能不起作用。