我有一个名为Content的模型,有两个字段'之前'和'之后'。
在创建记录之前,我会在字段'之前进行一些预处理。并将其存储在'之后。这里没问题。
问题是当我在显示页面加载“'之前的内容”时显示不完整。如果有2个或更多,我会在一段时间后修剪空格...... 例如
"this is. some text. with many spaces. after the periods."
该视图向我显示'之前'看起来像这样:
"this is. some text. with many spaces. after the periods."
如果我查看.json版本之前的'字段包含原始格式 - 为什么rails视图(非json)在'之前显示'作为"修剪"?
这是我的_content.html.erb
<li><%= content.before %></li>
<li><%= content.after %></li>
这是我的show.js.erb
$("#main").html("<%= escape_javascript(render @content) %>");
这是contents_controller.rb中的show定义
respond_to :html, :json
def show
@content = Content.find(params[:id])
respond_with(@content)
end
这是我的模型content.rb
中的预处理class Content < ActiveRecord::Base
before_validation :format_params
def format_params
rm_spaces = /\.\s{2,}/ # regex to rm extra spaces
new_format = '. ' # only one space after period
self.after = before.gsub(rm_spaces, new_format)
end
end
以下是我的意思截图。
修改 我相信这是因为我尝试了Swards推荐而被执行的代码,但它没有用。
这是我的contents_helper.rb中突出显示功能的代码
def highlight_changes(text)
highlighter = '<span style= "background: yellow">\1</span>'
matcher = /(\.\s{2,})/
text.gsub(matcher, highlighter).html_safe
end
这是show.html.rb中的代码
<p>
<strong>Before:</strong>
<!-- call the helper method to highlight changes made -->
<%= highlight_changes @content.before %>
</p>
答案 0 :(得分:0)
我认为浏览器省略了额外的空格。您可以使用var dyn = JsonConvert.DeserializeObject<dynamic>(rawJson);
var myObject = new O();
if (dyn.typeindicator.Value == "A") {
myObject.PropA = dyn.object_I_Need.AAAA.Value;
}
else
{
myObject.PropA = dyn.object_I_Need.anotherA.Value;
}
来制作空格。
要转换字符串,您可以尝试
这会用content.before.gsub(' ', ' ').html_safe
替换每个空格,然后告诉rails不要转义html字符(
)。
警告:如果用户输入
字段,那么使用before
是危险的,因为它可能允许用户注入恶意代码。