0
データベースに保存する前にボディをレンダリングしようとしています。ここのは、ここでの方法にcreate空のオブジェクトを作成します。
def create
@post=current_user.posts.create(:title => params[:title],:body => markdown(params[:body])
redirect_to(post_path(@post))
end
を作成し、私は私のレンダリングマークダウン方式
def markdown(text)
options = {
filter_html: true,
hard_wrap: true,
link_attributes: { rel: 'nofollow', target: "_blank" },
space_after_headers: true,
fenced_code_blocks: true
}
extensions = {
autolink: true,
superscript: true,
disable_indented_code_blocks: true
}
renderer = Redcarpet::Render::HTML.new(options)
markdown = Redcarpet::Markdown.new(renderer, extensions)
markdown.render(text).html_safe
end
ですが、私はデータを入力して空のオブジェクトを送信するとgenearatedされています。
irb(main):001:0> Post.last
Post Load (0.1ms) SELECT "posts".* FROM "posts" ORDER BY
"posts"."id" DESC LIMIT ? [["LIMIT", 1]]
=> #<Post id: 7, title: nil, body: nil, created_at: "2017-04-26
11:23:12", updated_at: "2017-04-26 11:23:12", user_id: 1>
私形式: - :
@post=current_user.posts.create(:title => params[:post][:title],:body => markdown(params[:post][:body])
また、あなたはおそらく強化されたセキュリティのためのRails StrongParamをチェックしたいと思います
= simple_form_for @post do |f|
=f.input :title
=f.input :body
=f.button :submit
'params [:title]'と 'params [:body]'はどんなコンテンツを返していますか?フォームはどのようにコード化されていますか? – Babar
が私の書式で更新されました –
まず空白の本文で投稿を作成したくない場合は、 'Post'モデルの' body'に存在確認を追加する必要があります。 –