2017-04-26 11 views
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 
+0

'params [:title]'と 'params [:body]'はどんなコンテンツを返していますか?フォームはどのようにコード化されていますか? – Babar

+0

が私の書式で更新されました –

+0

まず空白の本文で投稿を作成したくない場合は、 'Post'モデルの' body'に存在確認を追加する必要があります。 –

答えて

1

は、それは次のようにする必要があります。

関連する問題