🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Ruby

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

Ruby on Rails 6

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

Q&A

解決済

1回答

666閲覧

linkをクリックした言語に遷移したい

退会済みユーザー

退会済みユーザー

総合スコア0

Ruby

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

Ruby on Rails 6

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

0グッド

0クリップ

投稿2021/01/08 15:03

ruby:/cards/index.html.haml

1.Main 2 .Main__header 3 .Main__header__nav 4 %h1 エンジニアのための本 5 %ul.menu 6 %li 7 フロントエンド 8 %ul.sub 9 %li 10 = link_to "①HTML", card_category_path(:card_id, :category_id), method: :get 11 %li 12 = link_to "②CSS", card_category_path(:card_id, :category_id), method: :get 13 %li 14 = link_to "③Javascript", card_category_path(:card_id, :category_id), method: :get 15 %li 16 バックエンド 17 %ul.sub 18 %li 19 = link_to "④Java", card_category_path(:card_id, :category_id), method: :get 20 %li 21 = link_to "⑤PHP", card_category_path(:card_id, :category_id), method: :get 22 %li 23 = link_to "⑥Python", card_category_path(:card_id, :category_id), method: :get 24 %li 25 = link_to "⑦Ruby", card_category_path(:card_id, :category_id), method: :get

上記のように実装しています。やりたいことは、①HTMLを押したら登録されているHTMLの本を出力したいです。

ruby:/controllers/categories.rb

1class CategoriesController < ApplicationController 2 def show 3 #@category = Category.where(id: params[:category_id]) 4 #@categories = Category.all 5 #@category = Category.find(params[:id]) 6 @cards = Card.where(category_id: 1) 7 #@card = Card.find_by(language: "HTML") 8 9 end 10end

カテゴリーコントローラーはこのようになっています。コメントアウトのとこは気にしないでください。。
category_idの1をDBから取り出すようにしています。多分ここの部分を変えていくのかなと思っています。

ruby:/categories/show.html.haml

1.Table 2 .Table__title 3 = "「HTML」の登録一覧" 4 .Table__lists 5 - @cards.each do |card| 6 .Table__lists__list 7 = card.title 8 .Table__lists__btn 9 = link_to "編集", edit_card_path(card.id), method: :get 10 .Table__lists__btn 11 = link_to "削除", card_path(card.id), method: :delete

現在は「HTML」の登録一覧としていますが,この部分を動的にしていきたいです。
例えば、cssをクリックしたらcssと表示したいです。

現在は

ruby:/controllers/categories.rb

1class CategoriesController < ApplicationController 2 def show 3 #@category = Category.where(id: params[:category_id]) 4 #@categories = Category.all 5 #@category = Category.find(params[:id]) 6 @cards = Card.where(category_id: 1) 7 #@card = Card.find_by(language: "HTML") 8 9 end 10end

こちらの

category_id: 1)

idを2などにするとcssの本が読み込まれます。

DBはこのようになっています。

ruby:/migrate/cards.rb

1class CreateCards < ActiveRecord::Migration[6.0] 2 def change 3 create_table :cards do |t| 4 t.string :language 5 t.text :title 6 t.integer :price 7 t.string :releasedate 8 t.text :author 9 t.text :memo 10 t.integer :category_id 11 12 13 t.timestamps 14 end 15 end 16end

ruby:/migrate/category.rb

1class CreateCategories < ActiveRecord::Migration[6.0] 2 def change 3 create_table :categories do |t| 4 t.string :name 5 t.integer :card_id 6 7 t.timestamps 8 end 9 end 10end

このようになっています

どなたかご協力お願い致します。

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

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

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

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

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

m.ts10806

2021/01/08 21:10

GETリクエストの送信、受け取りの基本部分では。たぶんチュートリアルにも出てきます
guest

回答1

0

ベストアンサー

link_to "①HTML", card_category_path(:card_id, :category_id), method: :get
の :category_id がいけません。ここは HTMLのカテゴリーのIDを入れてください。
link_to は無指定で GET ですので、method: :get は不要です。

なお、、、、、
このレベルが自力で書けないとすると、m.ts10806 さんの言われるように、ますチュートリアルをきちんとやるほうが道は早いです

投稿2021/01/09 00:21

winterboum

総合スコア23567

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問