質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

1回答

122閲覧

link_toで、idが代入されない

keisuke.F

総合スコア19

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2020/07/06 10:07

お世話になっております。

現在、曲を登録するアプリケーションを作っています
編集機能を実装している際に以下の点に躓いております。

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からクリックした場合のみうまく反映されません。

おそらく、ここの記述方法に問題があるかと仮説を立てましたが、解決の見当がつきません。

よろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

' ではなく " です。

Ruby

1= link_to '編集', "/songs/#{song.id}/edit"

投稿2020/07/06 10:13

Cojiro

総合スコア539

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

keisuke.F

2020/07/06 10:21

"と’の使い分けに関してまで目が向けられていませんでした。 また一つ勉強になりました。 ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問