jQuery ->
$('form').on 'click', '.add_fields', (event) ->
time = new Date().getTime()
regexp = new RegExp($(this).data('id'), 'g')
$(this).before($(this).data('fields').replace(regexp, time))
event.preventDefault()
和辅助方法:
module ApplicationHelper
def link_to_add_fields(name, f, association)
new_object = f.object.send(association).klass.new
id = new_object.object_id
fields = f.fields_for(association, new_object, child_index: id) do |builder|
render(name.to_s.singularize + "_fields", f: builder)
end
link_to(name, '#', class: "add_fields", data: {id: id, fields: fields.gsub("\n", "")})
end
答案 0 :(得分:0)
我想为可能尝试做同样事情的人分享我的解决方案。我犯的错误是认为我可以在每个模型中有几个字段,但只将其中一个字段保存到数据库中。但每次我添加一个字段时,即使它们是空白的,它也会将所有其他字段保存整个记录。这就是为什么每次我添加资格时,我都会得到一个空白的不合格字段。解决方案是打破模型并为所需的每个领域创建一个新模型。
由于我的真正目标只是提供符合资格和不合格的项目符号列表,因此我提出了另外两种简单处理格式化的解决方案。第一种是使用富文本编辑器,另一种是使用.gsub在事后添加格式。例如:
<p>
<strong>Eligibility:</strong>
<%= (@grant.eligibility).gsub(/[=+~]/, '=' => '<ul>','~' => '</ul>', '+' => '<li/>').html_safe %>
</p>