ユーザーのプロフィールページにテキストエリアを表示して投稿を作成しようとしています。現時点ではユーザーの投稿をすべて見ることができますが、フォームが表示されないためプロフィールページにアクセスできません。Rails:投稿のユーザーform_forが機能しない
いくつかのものを変更しようとしましたが、ルーティングエラーのためにフォームが投稿されませんでした。
私は誤った経路に投稿しているように感じますが、私はそうとアドバイスをいただければ幸いです。
class PostsController < ApplicationController
def index
@posts = Post.all
end
def new
@post = Post.new
end
def create
@post = current_user.posts.build(post_params)
if @post.save
flash[:success] = "Posted!"
redirect_to root_url
else
flash[:notice] = "Post could not be submitted"
redirect_to users_path
end
end
private
def post_params
params.require(:post).permit(:user_id, :content)
end
end
_post_form.html.erb
<%= form_for :post, user_posts_path, {method: "create"} do |f| %>
<%= f.text_area :content, size: "60x12", placeholder: "What do you want to say?" %>
<%= f.submit "Post" %>
<% end %>
フォームがレンダリングされないと言うと、エラーメッセージが表示されますか? –
このエラーが発生しました:{:action => "index"、:controller => "posts"、:id => "8"}必要なキーがありません:[:user_id]それとどこの必要なキー:user_idがどこからくるのですか? –
あなたはどのようにユーザIDをコントローラに渡していますか? URLを介して? –