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

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

新規登録して質問してみよう
ただいま回答率
85.48%
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

0回答

786閲覧

Herokuにデプロイした後にDBに保存されない

退会済みユーザー

退会済みユーザー

総合スコア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/03/01 02:12

編集2021/03/03 11:08

実現したいこと

本番環境で情報を保存した際にDBに保存されるようにしたい

現状

%ul.sub %li = link_to "①HTML", card_category_path(:card_id ,1) %li = link_to "②CSS", card_category_path(:card_id, 2) %li = link_to "③Javascript", card_category_path(:card_id, 3) %li バックエンド %ul.sub %li = link_to "④Java", card_category_path(:card_id, 4) %li = link_to "⑤PHP", card_category_path(:card_id, 5) %li = link_to "⑥Python", card_category_path(:card_id, 6) %li = link_to "⑦Ruby", card_category_path(:card_id, 7)

こちらのリンクのところをクリックするとエラーが起きてしまいます。
開発環境だとDBに保存されブラウザに表示されるようになっているのですが、
本番環境だとDBに保存されなくてブラウザに表示されない状態です

仮説

MySQLと繋がっていないのか?

原因だと思われるコード

seeds.rb

1 create_table "cards", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t| 2 t.string "language" 3 t.text "title" 4 t.integer "price" 5 t.string "releasedate" 6 t.text "author" 7 t.text "memo" 8 t.datetime "created_at", precision: 6, null: false 9 t.datetime "updated_at", precision: 6, null: false 10 t.integer "category_id" 11 end 12 13 create_table "categories", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t| 14 t.string "name" 15 t.datetime "created_at", precision: 6, null: false 16 t.datetime "updated_at", precision: 6, null: false 17 t.integer "card_id" 18 end 19 20 create_table "users", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t| 21 t.string "email", default: "", null: false 22 t.string "encrypted_password", default: "", null: false 23 t.string "reset_password_token" 24 t.datetime "reset_password_sent_at" 25 t.datetime "remember_created_at" 26 t.datetime "created_at", precision: 6, null: false 27 t.datetime "updated_at", precision: 6, null: false 28 t.string "nickname" 29 t.index ["email"], name: "index_users_on_email", unique: true 30 t.index ["reset_password_token"], name: "index_users_on_reset_password_token", unique: true 31 end

database.yml

1# MySQL. Versions 5.5.8 and up are supported. 2# 3# Install the MySQL driver 4# gem install mysql2 5# 6# Ensure the MySQL gem is defined in your Gemfile 7# gem 'mysql2' 8# 9# And be sure to use new-style password hashing: 10# https://dev.mysql.com/doc/refman/5.7/en/password-hashing.html 11# 12default: &default 13 adapter: mysql2 14 encoding: utf8 15 pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %> 16 username: root 17 password: 18 socket: /tmp/mysql.sock 19 20development: 21 <<: *default 22 database: portfolio_development 23 24# Warning: The database defined as "test" will be erased and 25# re-generated from your development database when you run "rake". 26# Do not set this db to the same as development or production. 27test: 28 <<: *default 29 database: portfolio_test 30 31# As with config/credentials.yml, you never want to store sensitive information, 32# like your database password, in your source code. If your source code is 33# ever seen by anyone, they now have access to your database. 34# 35# Instead, provide the password as a unix environment variable when you boot 36# the app. Read https://guides.rubyonrails.org/configuring.html#configuring-a-database 37# for a full rundown on how to provide these environment variables in a 38# production deployment. 39# 40# On Heroku and other platform providers, you may have a full connection URL 41# available as an environment variable. For example: 42# 43# DATABASE_URL="mysql2://myuser:mypass@localhost/somedatabase" 44# 45# You can use this database configuration with: 46# 47# production: 48# url: <%= ENV['DATABASE_URL'] %> 49# 50production: 51 <<: *default 52 database: portfolio_production 53 username: portfolio 54 password: <%= ENV['PORTFOLIO_DATABASE_PASSWORD'] %>
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

追加

ターミナルで

heroku run rails db:migrate

を実行すると

Caused by:
Mysql2::Error: Duplicate column name 'card_id'
このようなエラーが起きてしまいます。

追加2

clearDBは用意できています。

ターミナルで heroku config を行うと CLEARDB_DATABASE_URL: の後にmysql~~~と表示されます。

どなたか手助けしてくれますと嬉しく思います。

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

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

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

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

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

maisumakun

2021/03/01 02:14

ClearDBは用意しましたか?
退会済みユーザー

退会済みユーザー

2021/03/01 02:27

お返事ありがとうござます! % heroku addons:add cleardb Creating cleardb on ⬢ engineerbook-keitaro... free Created cleardb-cylindrical-46141 as CLEARDB_TEAL_URL Use heroku addons:docs cleardb to view documentation 調べてみて、こちらのコマンドを実行しました。
退会済みユーザー

退会済みユーザー

2021/03/01 02:32

ターミナルで heroku config を行うと CLEARDB_DATABASE_URL: の後にmysql~~~と表示されます。
退会済みユーザー

退会済みユーザー

2021/03/01 11:23

heroku run rails db:migrateをすると このようなエラーが起きてしまいます・ Caused by: Mysql2::Error: Duplicate column name 'card_id'
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問