私はフォームから投稿を作成したいと思います。これは私がやったと何がこれまで働いていたものです:すべてのサイトに新しいフォームを投稿
ビュー
<%= form_for @post, url: {action: "create"}, html: { multipart: true } do |form| %>
<%= form.text_field :description %>
<%= form.file_field :image %>
<%= form.hidden_field :user_id, :value => current_user.id %>
<%= submit_tag"Post", class: "btn" %>
<% end %>
コントローラ
def new
@post = Post.new(params[:post])
end
def create
@post = Post.create(post_params)
if @post.save
redirect_to @post
else
render :new
end
end
def post_params
params.require(:post).permit(:description, :image, :user_id)
end
しかし、今、私は中に置かれるから、作成したいですlayouts/application.html.erb
と各ルート/サイトからのアクセスが可能です。しかし、私の問題は、変数@post
が見つからないということです。なぜなら、私はそれを投稿自身の新しい機能で解析するからです。どのようにこれを解決するための任意のアイデア?
でそれを呼び出すことができます。私はこの質問を投稿してから10秒後に自分自身で解決策を見つけました:<%= form_for Post.new(params [:post])、url:{controller: "post"、action: "create"}、html:{ multipart:true} do | form | %> ' – Sylnois
しかし、ありがとうございます:) – Sylnois