格式化Ruby on Rails文本字段

时间:2012-04-12 06:17:35

标签: ruby-on-rails ruby-on-rails-3.1

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

例如本文:

此文字为粗体

此文字为斜体

这是清单:

  1. 第1项;
  2. 第2项;
  3. 但在我的主页上,这将是这样的:

    这个文字是粗体这个文字是斜体这是列表: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%>
    

2 个答案:

答案 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