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

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

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

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

Heroku

HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Q&A

解決済

1回答

1064閲覧

Herokuにデプロイしたレコードidが10ずつ増えてしまう

退会済みユーザー

退会済みユーザー

総合スコア0

Ruby on Rails 6

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

Heroku

HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

0グッド

0クリップ

投稿2021/04/05 08:31

編集2021/04/05 11:54

エラー内容

イメージ説明説明](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

### 追加画像
イメージ説明
こちらになります。

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

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

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

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

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

mather

2021/04/05 09:17

- Cardモデルのコード - Cardモデルのマイグレーションファイル - Cardモデルのシードファイル を記載してください。
退会済みユーザー

退会済みユーザー

2021/04/05 09:22

コメントありがとうございます。 コード追加させていただきました。 また、Cardモデルのシードファイルがどこ載せたらいいのか分からずにいます。 seeds.rbであれば載せていますのでごかくにしていただければと思います。
mather

2021/04/05 09:35

_card.html.haml ファイルも記載してください。実際のidをレンダリングしている箇所があるはずです。 画像で見る限り pagenate がUIに全く表示されていないのも気になりますが、スクリーンショットは最新の状態のものでしょうか?
winterboum

2021/04/05 09:45

partial: "card" のcodeを
退会済みユーザー

退会済みユーザー

2021/04/05 09:59

すみません。 コード追加させていただきました。 paginate は登録されているデータが五つできたら表示されるようにしています。 partial: "card" のcodeは_card.html.hamlでよろしかったでしょうか?
mather

2021/04/05 10:02

現状、原因になるようなものが見つかりません。 一度 rails db:reset で初期状態に戻して登録された Card が0件になったことを確認し、3件以上Webの画面上から登録してみてください。 それでも発生するようであれば、スクリーンショットを再度添付してください。
mather

2021/04/05 10:03

ちなみに、「Herokuで」とタイトルに書いてあるのですが、 rails s で手元の環境を起動してもこのような現象が確認できないのでしょうか?
退会済みユーザー

退会済みユーザー

2021/04/05 11:57

スクリーンショットの画像添付しました。 ご確認お願いいたいます。 rails s でしてみると正常にidが1、2、3、4、となっています。。。。。
hoshi-takanori

2021/04/06 01:11

heroku の仕様だったような。もともと id がきっちり連番になる保証なんてありませんし。
guest

回答1

0

ベストアンサー

ClearDBのヘルプに理由が書いてありました。

When I use auto_increment keys (or sequences) in my database, they increment by 10 with varying offsets. Why?
https://w2.cleardb.net/faqs/#general_16

IDは連番でなくても被りがなければ良いのでそのまま使えば良いと思いますよ?

投稿2021/04/06 16:59

mather

総合スコア6753

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問