前提・実現したいこと
Railsで簡単な曲登録アプリを作成しています。
selectで選択したものがしっかりと保存されるようにし、その情報がビューに表示されて欲しい。
発生している問題・エラーメッセージ
enumを使用してselectタグを作成。enum_helpで日本語化しています。
selectでどれを選択してもsequel proでは0しか保存されていない。
(アーティスト名や曲名は問題なく保存されます。)
登録した情報がビューに表示されない。
(全て表示されません)
song.rbを文字列ではなく0,1にすると、ビューにsingと固定されて表示されてしまいます。
該当のソースコード
song.rb
Ruby
1class Song < ApplicationRecord 2 enum level: {sing: "sing", practice: "practice"} 3end
new.html.haml
Ruby
1.header 2 .header-logo 3 = link_to 'Song_Regi', root_path 4 .header-content 5 = link_to '曲一覧に戻る', root_path 6 7.main 8 .registration 9 = form_for @song, html: {class: 'form-group'} do |f| 10 = f.label :artist, class: "form-title" 11 = f.text_field :artist, class: 'form-control', placeholder: "アーティストを入力" 12 = f.label :title, class: "form-title" 13 = f.text_field :title, class: 'form-control', placeholder: "曲名を入力" 14 = f.label :level, class: "form-title" 15 = f.select :level, Song.levels_i18n.invert, {}, class: 'form-control' 16 = f.submit '作成する', class: "btn-primary"
main.html.haml
Ruby
1.main 2 .table-responsive 3 %table.chart 4 %thead.chart__top 5 %tr 6 %th アーティスト 7 %th タイトル 8 %th レベル 9 %th メモ 10 %tbody.chart__contents 11 %tr.chart__contents--item 12 %td 13 = @song.artist 14 %td 15 = @song.title 16 %td 17 = @song.level 18 %td 19 = @song.content
songs.controller.rb
Ruby
1class SongsController < ApplicationController 2 3 def index 4 @song = Song.new 5 end 6 7 def new 8 @song = Song.new 9 end 10 11 def create 12 @song = Song.new(song_params) 13 @song.save 14 redirect_to root_path 15 end 16 17 private 18 def song_params 19 params.require(:song).permit(:title, :artist, :content, :Level) 20 end 21 22end
補足情報(FW/ツールのバージョンなど)
haml-rails (2.0.1, 1.0.0)
Ruby on rails 5.2.3
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/01 10:54
2020/07/01 11:19
2020/07/01 12:16
2020/07/02 07:14