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
このようになっています
どなたかご協力お願い致します。
回答1件
あなたの回答
tips
プレビュー