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

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

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

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

Ruby on Rails

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

パス

パス(path)はファイルシステムの場所(階層)を明示したものです。

ルーティング

ルーティングとは、TCP/IPネットワークにおいて、目的のホストまでパケットを送る為のパス選定のプロセスを言います。

Q&A

解決済

1回答

2494閲覧

【rails】ネストしたルーティングでlink_toのパスの指定について

shun0211

総合スコア4

Ruby

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

Ruby on Rails

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

パス

パス(path)はファイルシステムの場所(階層)を明示したものです。

ルーティング

ルーティングとは、TCP/IPネットワークにおいて、目的のホストまでパケットを送る為のパス選定のプロセスを言います。

0グッド

0クリップ

投稿2020/05/26 03:11

ネストしたルーティングでlink_toを使う際、パスの指定がうまくいきません。

今回モデルをネストしていますので、指定したいパスのidが二個あります。(下記ルーティング画像参考)
そのため、引数を2つ書いているのですが、一番目の引数が無視され、すべて二番目の引数をidに代入し、ページを読み込んでしまいます。

ChoiseArtistHtmlHaml

1.choise_artist__box 2 .left__box 3 - @set_lists.each_with_index do |set_list, i| 4 - if i % 2 == 0 5 .artist__box 6 = link_to set_list_path(@event, set_list), class: "artist__box__content" do 7 = set_list.artist 8 %br 9 のセットリストを見る 10

イメージ説明
link_to で飛ばしたいパスはset_listsコントローラーのshowアクションでURIがevents/:id/set_lists/:idになります。
今回の質問はその:id一つ一つの指定ができず、二番目の引数を2つのidに代入してしまうというものになります。
下が実際の画面になります。hrefのeventsの後のidとset_listsの後のidが同じになっているのが分かると思います。
イメージ説明

コントローラーでは以下のように記載しています。

EventsController

1 def choise_artist 2 @event = Event.find(params[:id]) 3 @set_lists = @event.set_lists 4 end

railsガイドを参照してもパスの後の引数を2つ書くと書いてあり同じ記述をしているのに、なぜ一つしか読み込んでくれないのかが分かりません。
何卒、宜しくおねがいします。

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

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

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

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

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

winterboum

2020/05/27 13:50

routs.rbも載せてください
shun0211

2020/05/28 22:13 編集

routes.rbの記載が間違っていました。 下のように正しくルーティングを記載することで解決しました。 ご回答ありがとうございました!
guest

回答1

0

自己解決

ルーティングの記載方法が間違っていました。
下のように記載することで解決しました。

routesrb

1resources :events, only: [:index] do 2 member do 3 get "choise_artist" 4 end 5 resources :set_lists, only: [:new, :create, :show, :edit, :update, :destroy] do 6 resource :likes, only: [:create, :destroy] 7 resources :comments, only: [:create, :destroy] 8 end 9 end

投稿2020/05/28 22:15

shun0211

総合スコア4

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問