現在,Railsを使い投稿確認ページを作っているのですが、うまく遷移ができていません。
エラーが出ないのでどこを直したら良いのかで困ってしまいました。
#コード
controller
1class WorksController < ApplicationController 2 def new 3 @work = Work.new 4 end 5 6 def confirm 7 @work = Work.new(work_params) 8 render :new if @work.invalid? 9 end 10 11 def create 12 @work = Work.new(work_params) 13 if params[:back] 14 render :new 15 elsif @work.save 16 redirect_to @work, notice: 'Task was successfully created.' 17 else 18 render :new 19 end 20 end 21 22 23 private 24 def work_params 25 params.require(:work).permit(:title,:description,:url) 26 end 27end 28
routes
1Rails.application.routes.draw do 2 devise_for :users 3 root 'home#index' 4 resources :users 5 resources :works do 6 collection do 7 post 'confirm' 8 end 9 end 10end 11
以下が投稿ページです。
new.html.erb
1<%= form_for @work,url: {action: 'confirm'} do |f| %> 2 3<p>作品名</p> 4<%= f.text_field :title %> 5 6<p>紹介文</p> 7<%= f.text_area :description %> 8 9<p>URL</p> 10<%= f.text_field :url %> 11 12<%= f.submit "確認する" %> 13 14<% end %>
以下が投稿した後にある確認ページです。
confirm.html.erb
1<%= form_for @work do |f| %> 2 <%= @work.title %> 3 <%= f.hidden_field :title # <=データ保持 %> 4 <%= @work.description %> 5 <%= f.hidden_field :description # <=データ保持 %> 6 <%= @work.url %> 7 <%= f.hidden_field :url # <=データ保持 %> 8 <div class="actions"> 9 <%= f.submit '投稿画面に戻る', name: 'back' %> 10 </div> 11 <div class="actions"> 12 <%= f.submit '投稿する' %> 13 </div> 14<% end %>
#問題点
投稿ページから「確認する」ボタンを押したらURLは変わるのですが、viewが変わりません。
ボタンが「投稿する」にならず、「確認する」のままという感じです。
何度もボタンを押しても保存できない状況です。
Started GET "/works/new" for 10.0.2.2 at 2019-12-11 10:56:13 +0000 Cannot render console from 10.0.2.2! Allowed networks: 127.0.0.1, ::1, 127.0.0.0/127.255.255.255 Processing by WorksController#new as HTML Rendering works/new.html.erb within layouts/application Rendered works/new.html.erb within layouts/application (2.5ms) User Load (0.8ms) SELECT "users".* FROM "users" WHERE "users"."id" = ? ORDER BY "users"."id" ASC LIMIT ? [["id", 4], ["LIMIT", 1]] ↳ app/views/layouts/application.html.erb:21 Completed 200 OK in 242ms (Views: 189.5ms | ActiveRecord: 6.1ms) Started POST "/works/confirm" for 10.0.2.2 at 2019-12-11 10:56:19 +0000 Cannot render console from 10.0.2.2! Allowed networks: 127.0.0.1, ::1, 127.0.0.0/127.255.255.255 Processing by WorksController#confirm as HTML Parameters: {"utf8"=>"✓", "authenticity_token"=>"00IJMBDrlh/bFrblndfQfBaXdAZkfuWr0tjhK1PiOk92KH7Uo5wM2t+O8ivvc6XPaE0jvjzP1+DmqrUvmnl1qg==", "work"=>{"title"=>"uu", "description"=>"yy", "url"=>"tt"}, "commit"=>"確認する"} Rendering works/new.html.erb within layouts/application Rendered works/new.html.erb within layouts/application (1.3ms) User Load (0.8ms) SELECT "users".* FROM "users" WHERE "users"."id" = ? ORDER BY "users"."id" ASC LIMIT ? [["id", 4], ["LIMIT", 1]] ↳ app/views/layouts/application.html.erb:21 Completed 200 OK in 317ms (Views: 279.1ms | ActiveRecord: 0.8ms)
#試してみたこと
以下の記事を参考にroutesをネストしたり、データ保持のコードを入れたりしてみましたが、変化なし..という状況です。
ご教授いただけると幸いです????♂️
足りない情報などありましたら教えていただけると嬉しいです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/12/11 22:17
2019/12/12 12:41
2019/12/12 13:14
2019/12/15 08:27
2019/12/15 10:26 編集
2019/12/15 12:36
2019/12/15 12:38
2019/12/15 13:27 編集
2019/12/16 02:11
2019/12/16 03:31