日付と文章を登録するだけのシンプルな画面を作りたいです。
scaffoldのような感じではなく、1画面で新規追加と更新を行いたいです。
※削除は不要。
【仕様】
日付を入力→入力された日付にデータが無ければ新規追加で登録。
すでにデータがあれば、文章を表示し、更新で登録。
※日付には、初期値として現在日がセットされる。
このようなものを作りたく以下のようにしました。
ruby
1 2モデル 3class Poem < ApplicationRecord 4end 5 6ビュー 7<div class="container-fluid"> 8 <div class="row" style="margin-top:5%; margin-left: 10;"> 9 <div class="text-center"> 10 <div class="input-group" > 11 <%= text_field_tag('date', @date, id: 'poem_date', class: 'date-picker') %> 12 13 <%= form_for(@poem, url: poems_path) do |f| %> 14 <%= f.hidden_field :date %> 15 <%= f.text_area :poem, cols: "60", rows:"20" %> 16 <%= f.submit '登録', class: 'btn btn-primary btn-lg' %> 17 <% end %> 18 </div> 19 </div> 20 </div> 21 22コントローラ 23class PoemsController < ApplicationController 24 25 def create 26 end 27 28 def edit 29 30 @date = params[:date] || Date.today 31 @poem = Poem.where(date: @date).first_or_initialize 32 33 end 34 35 36 def update 37 38 39 if @poems.update(params) 40 redirect_to poems_edit_path(date: params[:date]) 41 else 42 render :edit 43 end 44 end 45 46 47end 48 49ルーティング 50Rails.application.routes.draw do 51 resources :poems, only: [:update, :create] do 52 collection do 53 get :edit 54 end 55 end 56end 57
それで
app/poems/edit
から登録ボタンを押しても何も反応しません。
ログも出力されません。
create()が空だからと思いますが、
これが無いとエラーになりますし、、、
出来ればcreate()を使わずedit()とupdate()だけで実装したいのですが。
どこが間違っているでしょうか?
分かる方、教えて下さい。
宜しくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/08/04 00:59
2017/08/04 01:13
2017/08/04 04:00
2017/08/04 05:12 編集
2017/08/06 01:12