我正在尝试使用rails3中的allows_nested_attributes_for功能实现嵌套表单来实现调查表单。调查有许多问题有很多答案。
我想将:_destroy字段作为隐藏传递,并在单击链接时使用jQuery设置它。它运行正常,但是当我尝试使用辅助方法进行相同操作时,隐藏字段不会显示。
module ApplicationHelper
def link_to_remove_field(link_text, builder)
builder.hidden_field :_destroy
link_to link_text, '#', :class=>"remove_field"
end
end
这是我想要使用的jquery函数。
$(function(){
$('.remove_field').on('click', function(element){
$(this).prev("input[type=hidden]").val("1");
$(this).parent('.field').hide();
return false;
});
});
这是我称之为帮助者的部分内容
<%= f.label :question %><br />
<%= f.text_area :question, :rows=>1 %>
<%= link_to_remove_field("Remove question", f) %>
出现a标签,但隐藏字段不显示。
<textarea cols="40" id="old_question_set_old_questions_attributes_2_question" name="old_question_set[old_questions_attributes][2][question]" rows="1"></textarea>
<a href="#" class="remove_field">Remove question</a>
答案 0 :(得分:1)
您link_to_remove_field
仅返回link_to
的最后一行,因为您忘记添加hidden_field
。将助手改为
def link_to_remove_field(link_text, builder)
builder.hidden_field(:_destroy) +
link_to(link_text, '#', :class => "remove_field")
end
请注意,在调用此方法时,您可能需要致电html_safe
link_to_remove_field(....).html_safe