我有这个表单用于创建主题(aka标签):
<%= simple_form_for @video, :url => {:action => "topic_update"}, :html => {:id => "topic_form"}, :remote => true do |f| %>
<div class="topic_field_input">
<%= f.input :topic_names, :class => "topic_field", :label => false, :placeholder => "Type a topic (enter to create new one)" %>
</div>
<% end %>
我将其创建为虚拟属性:
attr_accessor :topic_names
after_save :assign_topics
def assign_topics
self.topics << @topic_names.map do |name|
Topic.find_or_create_by_name(name.split(' ').map {|w| w.capitalize }.join(' '))
end
end
end
我认为它不会过滤html因为我传递给find_or_create_by_name
如何修改代码以过滤html?
答案 0 :(得分:0)
您可以在setter或getter中强制使用ERB::Util.h(@topic_names)
进行转义。