我有一个由以下方法调用的rails helper方法:
<%= link_to_add_fields "Add Product", f, :products %>
在application_helper.rb中:
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(association.to_s.singularize + "_fields", f: builder)
end
"<div>BLAHBLAHBLAH</div>" +
link_to(name, '#', class: 'add_fields', data: {id: id, fields: fields.gsub('\n', '')})+ ""
end
但是这会返回网页上显示为文本的所有内容。如何返回div和link_to,以便它们都正确呈现?
答案 0 :(得分:2)
尝试这样的事情:
"<div>BLAHBLAHBLAH</div> #{link_to(name, '#', class: 'add_fields', data: {id: id, fields: fields.gsub('\n', '')})}".html_safe
请注意html_safe
的使用。请记住,Rails会将您未转义的HTML代码编写为简单的“ol”字符串,以帮助防止Html Script Injection等问题。这就是您遇到的情况,因此您只需确保将其编写为实际的HTML代码。