#実現したいこと
active strageを用いて、画像と文章を投稿できる機能を作りたいです
#問題点
問題点としては、投稿機能を作りたいのに、paramsが空となってしまうので、そこで、ビューの、投稿された画像を表示する部分を消してみたら、エラー画面にならなかったので、フォームの問題かもしれません。
しかし、正解へのアプローチをどうすればいいのかわかりません
#問題のソースコード
以下、新規投稿ページ
<div> <%= form_with url: @post, local: true do |f| %> <h1>投稿を作る</h1> <%= f.text_area :content, rows: 6 %> <%= f.file_field :images, direct_upload: true, multiple: true %> <div class = 'submit-block'> <%= f.submit class:"button"%> </div> <% end %> </div>
以下、投稿機能をもたせている
posts_controller.rb
class PostsController < ApplicationController before_action :authenticate_user! before_action :find_post, only: [:edit, :update, :show, :destroy] def index @posts = Post.all @user = User.find_by(id: @post.user_id) end def new @post = Post.new end def edit @post = Post.find(post_params) end def create return redirect_to new_profile_path,alert: "プロフィールを登録してください" if current_user.profile.blank? @post = current_user @post = Post.params.require(:post).permit(:content, images: []) if @post.save redirect_to root_path,notice:'投稿に成功しました' else render :new end end def update if @post.update(post_params) redirect_to root_path else render :edit end end def destroy if @post.destroy redirect_to root_path,alert: '投稿を削除しました' else redirect_to root_path end end private def post_params params.require(:post).permit(:content, images: []) end def find_post @post = Post.find(params[:id]) end def force_redirect_unless_my_post return redirect_to root_path,alert:'権限がありません'if @post.user != current_user end end
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。