我有一个模块@post,用户可以在其中编写自己的帖子。问题是这些帖子没有段落,用户无法开始在新行中写入。也许有宝石允许这样做?我正在使用Ruby on Rails 3.2.1。
例如本文:
此文字为粗体,
此文字为斜体
这是清单:
但在我的主页上,这将是这样的:
这个文字是粗体这个文字是斜体这是列表:1。项目1; 2.第2项;
我希望你明白我的意思......
@post show:
<div id="content">
<div class="post">
<h1 class="title"><%=@post.title%></h1>
<p class="byline"style="text-align: right; font-weight: bold;">Raksts izveidots: <%= @post.created_at.utc.strftime("%d.%m.%Y") %></p>
<div class="entry">
<p><%= @post.content %></p>
<%= image_tag @post.bildes.url(:medium) %>
<%= image_tag @post.bildes.url(:thumb) %>
</div>
</div>
@post form:
<div id="content">
<%= form_for(@post) do |f| %>
<% if @post.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@post.errors.count, "error") %> prohibited this post from being saved:</h2>
<ul>
<% @post.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
<% create_url = {:url=>{:action=>"create"}} if @post.new_record? %>
<% form_for @post, :html => { :multipart => true } do |t| %>
<b><%= t.label :title, 'Virsraksts:' %></b><br />
<%= t.text_field :title %><br /><br />
<b><%= t.label :content, 'Teksts:' %></b><br />
<%= t.text_area :content %><br /><br />
<b><%= t.label :bildes, 'Pievienot bildes:' %></b><br />
<%= f.file_field :bildes %><br /><br />
<%= t.submit %>
<% end %>
<%end%>
答案 0 :(得分:4)
也许我找不到你。但我认为你需要在页面上使用富文本编辑器。
那里有很多富文本编辑器,我建议你结帐Tinymce,它也被wordpress使用。
这样用户就可以输入段落并控制其他格式,这将导致html格式并保留所有样式。
我正在使用gem 'tinymce-rails'
将Tinymce与rails集成。它只是将tinymce导入资产管道,没有提供任何帮助,但我认为它非常好,适用于资产管道,这对我来说已经足够了,我不喜欢为此包装很多,这里是链接:{ {3}}。您还可以找到许多其他宝石,它们提供与rails更紧密的集成。
答案 1 :(得分:4)
Rails的simple_format
会在以HTML格式输出时为您提供格式正确的段落和换行符,但对于更高级的格式设置,您还需要其他内容。
Markdown非常棒,如果您可以要求您的用户知道语法(Markdown是StackOverflow使用的)。有几个Markdown formatters for Ruby。