お世話になっております。
現在、曲を登録するアプリケーションを作っています
編集機能を実装している際に以下の点に躓いております。
What
ビューに表示した'編集'ボタンをクリックしてもURLが/songs/#{song.id}/editと表示されてしまう。
index.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 - @songs.each do |song| 12 %tr.chart__contents--item 13 %td 14 = song.artist 15 %td 16 = song.title 17 %td 18 = song.level_i18n 19 %td 20 = song.content 21 %td 22 = link_to '編集', '/songs/#{song.id}/edit'
edit.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 8.main 9 - if @song.errors.any? 10 .error-message 11 %h2 アーティスト、もしくはタイトルを入力してください。 12 .registration 13 = form_for @song, html: {class: "form-group"} do |f| 14 = f.label :artist, class: "form-title" 15 = f.text_field :artist, class: "form-control", placeholder: "アーティストを入力" 16 = f.label :title, class: "form-title" 17 = f.text_field :title, class: "form-control", placeholder: "曲名を入力" 18 = f.label :level, class: "form-title" 19 = f.select :level, Song.levels_i18n.invert, {}, class: 'form-control' 20 = f.label :content, class: "form-title" 21 = f.text_field :content, class: "form-control", placeholder: "メモを入力" 22 = f.submit '作成する', class: "btn-primary" 23 24.footer 25 .footer__text 26 %p Copyright - Keisuke Fujii, 2020 All Rights Reserved.
songs.controller.rb
Ruby
1class SongsController < ApplicationController 2 3 def index 4 @songs = Song.all 5 end 6 7 def new 8 @song = Song.new 9 end 10 11 def create 12 @song = Song.new(song_params) 13 if @song.save 14 redirect_to root_path 15 else 16 render :new 17 end 18 end 19 20 def edit 21 @song = Song.find(params[:id]) 22 end 23 24 def update 25 end 26 27 private 28 def song_params 29 params.require(:song).permit(:title, :artist, :level, :content) 30 end 31 32end
routes.rb
Ruby
1Rails.application.routes.draw do 2 root 'songs#index' 3 resources :songs, only: [:index, :new, :create, :edit, :update, :destroy] 4end
URLに直接/songs/1/editのように打つとうまく表示できます。
indexからクリックした場合のみうまく反映されません。
おそらく、ここの記述方法に問題があるかと仮説を立てましたが、解決の見当がつきません。
よろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/06 10:21