新規投稿を保存したいです
- 新規投稿機能を動作し、保存できるようにしたいです。
前提
Ruby on Railsで読書を習慣化できるようにタスク管理できるアプリを作ってます。
新規投稿ページで
タイトルと時間と内容をフォームに記述したら保存できるよ西谷のですができません。
該当のソースコード
app/views/reads/index.html.erb
ruby
1<%= render "shared/header" %> 2 3 <% if user_signed_in? %> 4 <div class="greeting"> 5 <%= "こんにちは、#{current_user.nickname}さん!" %> 6 </div> 7 <% else %> 8 <% end %> 9 10<p id="notice"><%= notice %></p> 11 12<div class="toppage"> 13<h1 class="top">カレンダー</h1> 14<%= link_to 'イベント追加', new_read_path %> 15 16 17<div class="col-md-8"> 18<%= month_calendar reads: @reads do |date, reads| %> 19 <%= date.day %> 20 21 <% reads.each do |read| %> 22 <div> 23 <%= link_to read.title, read %> 24 </div> 25 <% end %> 26<% end %> 27</div> 28</div> 29</div> 30
app/views/reads/new.html.erb
ruby
1<%= form_with(model: @read, local: true) do |form| %> 2 3 <div class="title"> 4 <%= form.label :title %> 5 <%= form.text_field :title %> 6 </div> 7 8 <div class="time"> 9 <%= form.label :start_time %> 10 <%= form.datetime_select :start_time %> 11 </div> 12 13 <div class="content"> 14 <%= form.label :content %> 15 <%= form.text_field :content %> 16 </div> 17 18 19 <div class="submit"> 20 <%= form.submit %> 21 </div> 22 23<% end %> 24 25 26
config/routes
ruby
1Rails.application.routes.draw do 2 devise_for :users 3 4 root to: "reads#index" 5 resources :reads 6end 7
app/controllers/reads_controller.rb
ruby
1class ReadsController < ApplicationController 2 3 def index 4 @reads = Read.all 5 @read = Read.new 6 end 7 8 def new 9 @read = Read.new 10 end 11 12 def show 13 @read = Read.find(params[:id]) 14 end 15 16 def create 17 @read = Read.new(read_parameter) 18 19 if @read.save 20 redirect_to reads_path, notice: '投稿が保存されました' 21 else 22 render 'new' 23 end 24 end 25 26 def destroy 27 @read = Read.find(params[:id]) 28 @read.destroy 29 redirect_to reads_path, notice:"削除しました" 30 end 31 32 def edit 33 @read = Read.find(params[:id]) 34 end 35 36 def update 37 @read = Read.find(params[:id]) 38 if @read.update(read_parameter) 39 redirect_to reads_path, notice: "編集しました" 40 else 41 render 'edit' 42 end 43 end 44 45 private 46 47 def read_parameter 48 params.require(:read).permit(:title, :content, :start_time) 49 end 50 51end 52
app/models/reads
ruby
1class Read < ApplicationRecord 2 belongs_to :user 3 4 validates :title, presence: true 5 validates :content, presence: true 6 validates :start_time , presence: true 7end 8
db/migrate/20231125061018_create_reads.rb
ruby
1class CreateReads < ActiveRecord::Migration[7.0] 2 def change 3 create_table :reads do |t| 4 t.string :title, null: false 5 t.text :content, null: false 6 t.datetime :start_time, null: false 7 t.references :user, null: false 8 9 10 t.timestamps 11 end 12 end 13end 14
スペルミスなどは確認しましたが、特に間違ってるところはないです。
すみませんがよろしくお願いいたします。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2023/11/27 12:36