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

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

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

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

Ruby on Rails 6

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

Q&A

解決済

1回答

1365閲覧

カラム追加時にwrong number of arguments (given 1, expected 3)エラーメッセージが出力される

a-shu-a

総合スコア2

Ruby

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

Ruby on Rails 6

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

0グッド

0クリップ

投稿2020/07/28 14:54

前提・実現したいこと

初学者になります。また初めての質問でご迷惑おかけするかもしれませんがよろしくお願いします。
現在、itemsテーブルにカラムを追加したいと考えております。
以前にitemモデルを作成し、その際に一緒に作られるマイグレーションファイルには特にカラム等の追加を記載することなくマイグレーションを実行したため、この度新しくマイグレーションファイルを作成し、カラム追加を実装したいと考えております。
ですが以下のように、rails db:migrateを実行するとエラーメッセージが表示されます。
どなたかこの問題についてご教授いただけると幸いです。

発生している問題・エラーメッセージ

== 20200728140841 AddColumnItems: migrating =================================== -- add_column(:items) rails aborted! StandardError: An error has occurred, all later migrations canceled: wrong number of arguments (given 1, expected 3) /Users/shuanno/projects/fleamarket_sample_79a/db/migrate/20200728140841_add_column_items.rb:3:in `change' /Users/shuanno/projects/fleamarket_sample_79a/bin/rails:9:in `<top (required)>' /Users/shuanno/projects/fleamarket_sample_79a/bin/spring:15:in `<top (required)>' bin/rails:3:in `load' bin/rails:3:in `<main>' Caused by: ArgumentError: wrong number of arguments (given 1, expected 3) /Users/shuanno/projects/fleamarket_sample_79a/db/migrate/20200728140841_add_column_items.rb:3:in `change' /Users/shuanno/projects/fleamarket_sample_79a/bin/rails:9:in `<top (required)>' /Users/shuanno/projects/fleamarket_sample_79a/bin/spring:15:in `<top (required)>' bin/rails:3:in `load' bin/rails:3:in `<main>' Tasks: TOP => db:migrate (See full trace by running task with --trace)

該当のソースコード

ruby

1class AddColumnItems < ActiveRecord::Migration[6.0] 2 def change 3 add_column :items do |t| 4 t.string :name, null: false 5 t.integer :price, null: false 6 t.text :description, null: false 7 t.string :stock, null: false 8 t.integer :condition_id, null: false 9 t.integer :shipping_cost_id, null: false 10 t.integer :shipping_time_id, null: false 11 t.integer :prefecture_id, null: false 12 t.references :category, null: false, foreign_key: true 13 t.references :brand, foreign_key: true 14 t.references :seller, null: false, foreign_key: true 15 t.references :buyer, foreign_key: true 16 t.timestamps 17 end 18 end 19end 20

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

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

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

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

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

guest

回答1

0

ベストアンサー

add_columnは、add_column テーブル名 列名 型のように指定して使うメソッドです。

t.stringのようなメソッドを使うブロックを開きたい場合、change_tableを使ってください。

(なお、追加するマイグレーションの場合、「追加したい行」だけ書いてください。)

投稿2020/07/28 22:09

maisumakun

総合スコア146018

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

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

a-shu-a

2020/07/29 06:09

ありがとうございます。ご指摘していただいた内容を元に修正を加えた結果マイグレーションできました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問