エラー内容
](4239c3e99129fd8b742b40719758b099.png)
このようにIDの部分が10ずつ増えていってしまうのを解決したいと思っています。
データベースはMySQLを使用しています。
こちらのエラーに関してどこのコードがおかしいなどが全く検討できないので、
もし、このコードみたいと言っていただけると追加で編集させていただきます。
コードの一部
index.html.haml
index.html.haml
1.Data 2 .Data__categorys 3 %h2 登録データ一覧 4 .Data__categorys__category 5 .Data__categorys__category__id 6 ID 7 .Data__categorys__category__title 8 Title 9 .Data__categorys__category__language 10 Language 11 = render partial: "card" 12 13.Pagenation 14 = paginate @cards 15 16.New 17 .New__book 18 = link_to "新しい本の追加", new_card_path
class CardsController < ApplicationController before_action :set_card, only: [:edit, :show] #before_action :goback, only: [:update, :destroy] def index @cards = Card.all.page(params[:page]).per(6) end def new @card = Card.new end def create Card.create(cards_params) redirect_to root_path end def edit #@card = Card.find(params[:id]) end def update card = Card.find(params[:id]) card.update(cards_params) redirect_to root_path end def destroy card = Card.find(params[:id]) card.destroy redirect_to root_path end def show #@card = Card.find(params[:id]) end def search @cards = Card.search(params[:keyword]) @keyword = params[:keyword] end private def cards_params params.require(:card).permit(:language, :title, :releasedate, :price, :author, :memo, :category_id) end def set_card @card = Card.find(params[:id]) end # def goback # redirect_to root_path # end end
seeds.rbになります。
Category.create(:name => 'HTML', :card_id => 1) Category.create(:name => 'CSS', :card_id => 2) Category.create(:name => 'JavaScript', :card_id => 3) Category.create(:name => 'Java', :card_id => 4) Category.create(:name => 'PHP', :card_id => 5) Category.create(:name => 'Python', :card_id => 6) Category.create(:name => 'Ruby', :card_id => 7)
是非お願い致します。
追加コードになります
Cardモデル
class Card < ApplicationRecord belongs_to :category, optional: true def self.search(search) #self.クラスメソッド if search != "" Card.where('language LIKE(?) or title LIKE(?)', "%#{search}%","%#{search}%").order('id DESC') #言語、タイトルで検索することが可能 else order('Id DESC') end end end
Cardモデルのマイグレーション
class CreateCards < ActiveRecord::Migration[6.0] def change create_table :cards do |t| t.string :language t.text :title t.integer :price t.string :releasedate t.text :author t.text :memo t.integer :category_id t.timestamps end end end
追加のコード2 _card.html.haml
.Data__table - @cards.each do |card| #データを一つずつ取り出す .Data__table__list .Data__table__list__id = card.id .Data__table__list__title = link_to "#{card.title}", card_path(card.id) .Data__table__list__language = card.language .Data__table__list__btn = link_to "編集", edit_card_path(card.id) .Data__table__list__btn = link_to "削除", card_path(card.id), method: :delete
- Cardモデルのコード
- Cardモデルのマイグレーションファイル
- Cardモデルのシードファイル
を記載してください。
コメントありがとうございます。
コード追加させていただきました。
また、Cardモデルのシードファイルがどこ載せたらいいのか分からずにいます。
seeds.rbであれば載せていますのでごかくにしていただければと思います。
_card.html.haml ファイルも記載してください。実際のidをレンダリングしている箇所があるはずです。
画像で見る限り pagenate がUIに全く表示されていないのも気になりますが、スクリーンショットは最新の状態のものでしょうか?
partial: "card" のcodeを
すみません。
コード追加させていただきました。
paginate は登録されているデータが五つできたら表示されるようにしています。
partial: "card" のcodeは_card.html.hamlでよろしかったでしょうか?
現状、原因になるようなものが見つかりません。
一度 rails db:reset で初期状態に戻して登録された Card が0件になったことを確認し、3件以上Webの画面上から登録してみてください。
それでも発生するようであれば、スクリーンショットを再度添付してください。
ちなみに、「Herokuで」とタイトルに書いてあるのですが、 rails s で手元の環境を起動してもこのような現象が確認できないのでしょうか?
スクリーンショットの画像添付しました。
ご確認お願いいたいます。
rails s でしてみると正常にidが1、2、3、4、となっています。。。。。
heroku の仕様だったような。もともと id がきっちり連番になる保証なんてありませんし。
回答1件
あなたの回答
tips
プレビュー
