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

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

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

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

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

Q&A

2回答

3817閲覧

テーブルに開発用のデータを入れる時にエラーがでてしまいます。

kokufuchan

総合スコア6

Ruby on Rails

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

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

0グッド

0クリップ

投稿2014/11/14 03:36

membersというテーブルにデータを入れようとしたんですが、エラーが出てしまいます。理由がわかられる方いらっしゃいますか?
以下はターミナル画面です。「 2.1.1 :003 > member.number = 1 」 という文の下がエラーメッセージになっています。

MacBook-Air:asagao$ rails c
Loading development environment (Rails 4.1.7)
2.1.1 :001 > Member.count
(0.1ms) SELECT COUNT(*) FROM "members"
=> 0
2.1.1 :002 > member = Member.new
=> #<Member id: nil, created_at: nil, updated_at: nil>
2.1.1 :003 > member.number = 1
NoMethodError: undefined method number=' for #<Member id: nil, created_at: nil, updated_at: nil> from /Users/shin/.rvm/gems/ruby-2.1.1/gems/activemodel-4.1.7/lib/active_model/attribute_methods.rb:435:in method_missing'
from /Users/shin/.rvm/gems/ruby-2.1.1/gems/activerecord-4.1.7/lib/active_record/attribute_methods.rb:211:in method_missing' from (irb):3 from /Users/shin/.rvm/gems/ruby-2.1.1/gems/railties-4.1.7/lib/rails/commands/console.rb:90:in start'
from /Users/shin/.rvm/gems/ruby-2.1.1/gems/railties-4.1.7/lib/rails/commands/console.rb:9:in start' from /Users/shin/.rvm/gems/ruby-2.1.1/gems/railties-4.1.7/lib/rails/commands/commands_tasks.rb:69:in console'
from /Users/shin/.rvm/gems/ruby-2.1.1/gems/railties-4.1.7/lib/rails/commands/commands_tasks.rb:40:in run_command!' from /Users/shin/.rvm/gems/ruby-2.1.1/gems/railties-4.1.7/lib/rails/commands.rb:17:in <top (required)>'
from bin/rails:4:in require' from bin/rails:4:in <main>'

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

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

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

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

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

guest

回答2

0

Member は memer という項目を持っていませんね。

2.1.1 :002 > member = Member.new
=> #<Member id: nil, created_at: nil, updated_at: nil>

db/migration の member に関する定義を見直してみては?

投稿2014/11/14 03:42

katoy

総合スコア22324

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

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

kokufuchan

2014/11/14 03:45

返信ありがとうございます。 db/migrationの所には以下のように書いています。この中に間違いはありますか? class CreateMembers < ActiveRecord::Migration def change create_table :members do |t| t.integer :number, null: false t.string :name, null: false t.string :full_name t.string :email t.date :birthday t.integer :gender, null: false, default: 0 t.boolean :administrator, null: false, default: false t.timestamps end end end
katoy

2014/11/14 22:37

私のところでは、現象が再現しません。 最初の回答に書いたように そちらの環境では、ともかく members テーブルが意図した項目を持ってないようです。 他のテーブルは意図した項目を持っていますか? rake db:drop してから、再度 db:migrate してみては? 確認作業方法 ============ Rails の環境に 2 つのファイルを追加して確認してみました。 1. db/migreat/201411150707643_create_members.rb (内容は 上のコメントで示されたものを そのまま copy) 2. app/models/member.rb class Member < ActiveRecord::Base end その後 以下の操作をしてみました。 $ rake db:drop $ rake db:migrate y rails c Loading development environment (Rails 4.1.7) Frame number: 0/21 [1] pry(main)> m = Member.new +----+--------+------+-----------+-------+----------+--------+---------------+------------+------------+ | id | number | name | full_name | email | birthday | gender | administrator | created_at | updated_at | +----+--------+------+-----------+-------+----------+--------+---------------+------------+------------+ | | | | | | | 0 | false | | | +----+--------+------+-----------+-------+----------+--------+---------------+------------+------------+ 1 row in set [2] pry(main)> 備考: 私の環境では、 Gemfile に次の gem を入れているので、上のような表形式の表示になってます。 gem 'hirb' gem 'hirb-unicode' gem 'pry-rails' gem 'pry-doc' gem 'pry-stack_explorer' gem 'pry-byebug'
guest

0

rake db:migrateした後にmigrationファイルdb/migrate/XXXXXXXXXXXXXX_create_members.rbに手を加えても意味がありません。マイグレートした時点でmigrationファイルに定義された通りのカラムを持ったテーブルを作成します。
katoyさんのおっしゃる通り、migrateし直す必要があります。
既にmigrationファイルにテーブルの定義を書かれているのでそのままrake db:migrate:resetを実行すれば大丈夫だと思います。

投稿2014/11/16 22:39

HirokiShirai

総合スコア11

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問