返回字符串和函数

时间:2014-12-29 21:15:09

标签: ruby-on-rails ruby function

我有一个由以下方法调用的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,以便它们都正确呈现?

1 个答案:

答案 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代码。