0

我有一个模块@post,用户可以在其中编写自己的帖子。问题是这些帖子没有段落,用户无法开始在新行中写入。也许有允许这样做的宝石?我正在使用 Ruby on Rails 3.2.1。

例如这段文字:

此文字为粗体

此文字为斜体

这是列表:

  1. 第 1 项;
  2. 第 2 项;

但在我的主页中,这将如下所示:

此文字为粗体 此文字为斜体 这是列表: 1. 项目 1;2.第2项;

我希望你明白我的意思...

@post 节目:

<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 表格:

<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%>

4

2 回答 2

4

也许我没有让你正确。但我认为您需要在页面上使用富文本编辑器。

那里有很多富文本编辑器,我建议您查看Tinymce,它也被 wordpress 使用。

这样用户可以输入段落并控制其他格式,这将导致html格式并保留所有样式。

我正在使用gem 'tinymce-rails'将 Tinymce 与 Rails 集成。它只是将tinymce导入资产管道,不提供任何帮助,但我认为它非常好,与资产管道配合得很好,这对我来说已经足够了,我不喜欢为此做太多的包装,这是链接:tinymce -导轨。您还可以找到许多其他提供与 Rails 更紧密集成的 gem。

于 2012-04-12T06:30:13.950 回答
4

当输出为 HTML 时, Railssimple_format会为您提供正确格式化的段落和换行符,但对于更高级的格式化,您需要其他内容。

如果您可以要求您的用户知道语法,那么Markdown非常棒(Markdown 是 StackOverflow 使用的)。Ruby有几个Markdown 格式化程序

于 2012-04-12T06:44:35.530 回答