gpt4 book ai didi

ruby-on-rails - 使用 Ruby on Rails 在文本区域中保留换行符

转载 作者:数据小太阳 更新时间:2023-10-29 06:42:02 24 4
gpt4 key购买 nike

为了练习 Ruby on Rails,我正在创建一个包含文本区域的博客(遵循 Mackenzie Child 的教程)。提交文本时,所有换行符都将被删除。我知道已经有人问过这个问题的变体,但尽管尝试了一整天,我还是无法复制任何结果。我对 JQuery 不是很熟悉。

是否有一组步骤可以保留换行符?

_form.html.erb

<div class="form">
<%= form_for @post do |f| %>
<%= f.label :title %><br>
<%= f.text_field :title %><br>
<br>
<%= f.label :body %><br>
<%= f.text_area :body %><br>
<br>
<%= f.submit %>
<% end %>
</div>

posts_controller.rb

class PostsController < ApplicationController before_action :authenticate_user!, except: [:index, :show]

def index
@posts = Post.all.order('created_at DESC')
end

def new
@post = Post.new
end

def create
@post = Post.new(post_params)

@post.save
redirect_to @post
end

def show
@post = Post.find(params[:id])
end

def edit
@post = Post.find(params[:id])
end

def update
@post = Post.find(params[:id])

if @post.update(params[:post].permit(:title, :body))
redirect_to @post
else
render 'edit'
end
end

def destroy
@post = Post.find(params[:id])
@post.destroy

redirect_to posts_path
end

private

def post_params
params.require(:post).permit(:title, :body)
end
end

最佳答案

换行符实际上被保留(如 \r\n ),您只是在索引/显示 View 中看不到它们。

在这些 View 中,调用 simple_format 在你的 post.body要替换的字段 \n<br> s(HTML 换行符):

simple_format(post.body)

来自文档:

simple_format(text, html_options = {}, options = {}) public

Returns text transformed into HTML using simple formatting rules.
Two or more consecutive newlines(\n\n) are considered as a paragraph and wrapped
in <p> tags. One newline (\n) is considered as a linebreak and a <br /> tag is
appended. This method does not remove the newlines from the text.

关于ruby-on-rails - 使用 Ruby on Rails 在文本区域中保留换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28397943/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com