【发布时间】:2012-12-20 06:43:36
【问题描述】:
所以我正在使用 Sinatra 和 Datamapper 为我的投资组合网站 (http://erickel.ly) 创建自己的 CMS/博客。一切都很顺利,直到我开始写我的第一篇实际帖子并且我需要显示一些代码。我的第一个猜测是,当我将源代码粘贴到用于输入每个帖子内容的文本区域时,只需使用代码和预标记包装源代码。它工作正常,但第一行之后的每一行都以大量不属于的额外空格开头。
这是帖子类:
class Post
include DataMapper::Resource
property :id, Serial
property :title, String
property :slug, String
property :body, Text
property :created_at, DateTime
property :updated_at, DateTime
end
这里是帖子内容表单的文本区域:
%label(for="body") Body:
%textarea(name="body" rows="10" cols="40")
= @post.body
这是我在文本区域中输入的内容:
<code>
<pre>class Link
include DataMapper::Resource
property :long_url, String, :length => 1024, :format => :url
property :short_url, String, :key => true
property :created_at, DateTime
def self.gen_short_url
# Create an Array of possible characters
chars = ('a'..'z').to_a + ('A'..'Z').to_a + ('0'..'9').to_a
tmp = chars[rand(62)] + chars[rand(62)] + chars[rand(62)]
while Link.get(tmp)
puts "Tried " + tmp
tmp = chars[rand(62)] + chars[rand(62)] + chars[rand(62)]
puts "tmp is now " + tmp
end
tmp
end
end</pre>
</code>
我们提交表单后,文本区域中的数据被保存,但有额外的空格。当我回到显示帖子“正文”的当前值的编辑页面时,显示的是这样的:
<code>
<pre>class Link
include DataMapper::Resource
property :long_url, String, :length => 1024, :format => :url
property :short_url, String, :key => true
property :created_at, DateTime
def self.gen_short_url
# Create an Array of possible characters
chars = ('a'..'z').to_a + ('A'..'Z').to_a + ('0'..'9').to_a
tmp = chars[rand(62)] + chars[rand(62)] + chars[rand(62)]
while Link.get(tmp)
puts "Tried " + tmp
tmp = chars[rand(62)] + chars[rand(62)] + chars[rand(62)]
puts "tmp is now " + tmp
end
tmp
end
end</pre>
</code>
如果我再次提交包含该值的表单,则每行的开头会添加更多额外的空格。我不知道如何防止这种情况,但它真的让我失望。任何帮助将不胜感激!
-埃里克
【问题讨论】:
标签: textarea sinatra form-submit datamapper removing-whitespace