私はRailsの初心者で、Railsでtwitterのクローンのようなものを作成しております。
そこで入力画面 => 確認画面 => 入力一覧画面のように作りたいのですが、
確認画面だけ作れないでいる状態です。作成の仕方に関してアドバイスをいただけないでしょうか。
new.html.erbで送信ボタンを押すと、確認画面にうつり確認画面で送信を押すと、ツイートが作成される機能を作りたいと考えております。
new.html.erb =>confirm.html.erbと移していく方法を教えていただでけますでしょうか。
app/views/posts/new.html.erb
<%= form_tag("/posts/create") do %> 途中省略 <textarea name="content"><%= @post.content%></textarea> <input type="submit" value="投稿を確認"> <% end %>
app/views/posts/confirm.html.erb
<%= form_with(model: @post, url: posts_path, local: true) do |form| %>
class PostsController < ApplicationController
def index
@posts = Post.all.order(created_at: :desc)
end
def show
@post = Post.find_by(id: params[:id])
end
def new
@post = Post.new
end
def create
@post = Post.new(content: params[:content])
if params[:back]
render("posts/new")
elsif @post.save
flash[:notice] = "投稿を作成しました"
redirect_to("/posts/index")
else
render("posts/new")
end
end
controller/post_controllder.eb
def edit
@post = Post.find_by(id: params[:id])
end
def update
@post = Post.find_by(id: params[:id])
@post.content = params[:content]
if @post.save
flash[:notice] = "投稿を編集しました"
redirect_to("/posts/index")
else
render("posts/edit")
end
end
def destroy
@post = Post.find_by(id: params[:id])
@post.destroy
flash[:notice] = "投稿を削除しました"
redirect_to("/posts/index")
end
def confirm
@post = post.new(post_params)
render("posts/new") if @post.invalid?
end
end
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/08/09 00:49
2018/08/09 01:34
2018/08/09 01:47