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

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

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

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

Ruby

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

Ruby on Rails

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

2回答

10115閲覧

Ruby on Railsにてlink_to pathにidを渡したい

Banksy

総合スコア8

Ruby on Rails 5

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

Ruby

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

Ruby on Rails

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

1クリップ

投稿2018/02/26 13:41

編集2018/02/26 13:44

link_to pathにidに渡したい

  • やりたいこと以下のようなリンク設定をしたい。

HTML

1<a href="https://example.com/products/detail/1">商品名</a>

rake routesで以下のような設定になっています。
products_index
GET /products/index(.:format) products#index
GET /products/detail/:id(.:format) products#detail

書き方がわからず以下のようにしたら

html

1<%= link_to product.product_name_long, products_index_path(product) %>

該当のソースコード

このようになります。

HTML

1<a href="https://example.com/products/index.1">商品名</a>

/products/detail/:idをリンクに設定したいのですがどのように記述すればいいのか教えていただけないでしょうか。

試したこと

経験値不足でどうしたらいいのかがわからず、検索したりもしたのですがダメで、聞ける人もいなく質問させていただきました。

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

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

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

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

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

guest

回答2

0

ベストアンサー

上記のrails routesの実行結果を見るに、products#detailへのpathが生成されていないですね。

Link_toを使わないのであれば、

ruby

1<a href="/products/#{products.id}">詳細</a>

で実現が可能で、link_toを使いたい場合、routes.rbを編集する必要があります。

routes.rbを開き、以下のようにします。

products_detail_pathというものを使用する場合

ruby

1get '/products/:id', to: 'products#detail', as: :products_detail

erbテンプレートは以下のようにします。

erb

1<%= link_to product.product_name_long, products_detail_path(product.id) %>

でいかがでしょうか?

投稿2018/03/07 03:22

編集2018/03/07 03:41
kenny_sayama

総合スコア1036

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

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

Banksy

2018/03/07 06:18

kenny_sayamaさん link_toの場合とそうでない場合、routesの設定まで分かりやすく丁寧に教えていただき助かりました。 思ったような動きになりました。 ありがとうございました。
kenny_sayama

2018/03/07 07:48

解決したようでよかったです。
guest

0

こんにちは。
link_toの第二引数を、
products_detail_path(product)
とするといかがでしょうか。

投稿2018/02/26 14:26

kentos

総合スコア68

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

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

Banksy

2018/02/27 01:07

回答ありがとうございます。 ご提案いただいた内容も試してみましたがダメでした。
kentos

2018/02/28 07:09

あれ、そうでしたか。 rails routesの実行結果ですが、全て書き込んでいただいてよろしいでしょうか。
Banksy

2018/03/07 02:47

こちらが全ての実行結果です。よろしくお願いいたします。 rake routes Prefix Verb URI Pattern Controller#Action welcom_index GET /welcom/index(.:format) welcom#index photos GET /photos(.:format) photos#index POST /photos(.:format) photos#create new_photo GET /photos/new(.:format) photos#new edit_photo GET /photos/:id/edit(.:format) photos#edit photo GET /photos/:id(.:format) photos#show PATCH /photos/:id(.:format) photos#update PUT /photos/:id(.:format) photos#update DELETE /photos/:id(.:format) photos#destroy help_beginner GET /help/beginner(.:format) help#beginner beginner GET /beginner(.:format) help#beginner sessions_new GET /sessions/new(.:format) sessions#new users_new GET /users/new(.:format) users#new products_index GET /products/index(.:format) products#index GET /products/detail/:id(.:format) products#detail signup GET /signup(.:format) users#new POST /signup(.:format) users#create login GET /login(.:format) sessions#new POST /login(.:format) sessions#create logout DELETE /logout(.:format) sessions#destroy root GET / welcom#index users GET /users(.:format) users#index POST /users(.:format) users#create new_user GET /users/new(.:format) users#new edit_user GET /users/:id/edit(.:format) users#edit user GET /users/:id(.:format) users#show PATCH /users/:id(.:format) users#update PUT /users/:id(.:format) users#update DELETE /users/:id(.:format) users#destroy GET /*path(.:format) application#render_404
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問