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

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

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

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

Q&A

解決済

1回答

1222閲覧

railsチュートリアル 第2章 マイクロポストとユーザーの関連付けについて

kyota008

総合スコア4

Ruby on Rails

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

0グッド

0クリップ

投稿2020/02/11 11:15

編集2020/02/11 11:51

解決したいこと。

railsチュートリアル第2章の

User.firstと打ち込んでデータベースから1人目のユーザー情報を取り出し、first_user変数に保存します7

を実行したいのですがうまく行きません。

分からないコード

railsチュートリアルの第2章についてです。自分自身でも調べてみたのですが解決策を見つけられませんでした。

rails consoleでfirst_user = User.firstと入力すると下記が表示されます。

User Load (0.3ms) SELECT "users".* FROM "users" ORDER BY "users"."id" ASC LIMIT ? [["LIMIT", 1]]

この意味はなんでしょうか?

試したこと

データベースの削除して再度、マイクロポストとユーザー情報をデータベースに登録しましたがうまく行きません。

rails dbconsoleで確認したところしっかりとデータはあるようです。

teminal

1❯ rails dbconsole 2sqlite> .tables 3 ar_internal_metadata schema_migrations 4 microposts users 5sqlite> .headers on 6sqlite> select * from users; 7 id|name|email|created_at|updated_at 8 1|name1|test@email|2020-02-11 09:27:40.358618|2020-02-11 09:27:40.358618 9 2|name2|test2@email|2020-02-11 09:27:54.898747|2020-02-11 09:27:54.898747 10 3|||2020-02-11 10:24:58.929984|2020-02-11 10:24:58.929984 11sqlite> select * from microposts; 12 id|content|user_id|created_at|updated_at 13 1|first|1|2020-02-11 09:29:06.679478|2020-02-11 09:29:06.679478 14 2|second|2|2020-02-11 09:29:27.756263|2020-02-11 09:29:27.756263 15

イメージ説明

イメージ説明

イメージ説明

情報が不十分であれば追記します!
お手数ですがよろしくお願いいたします。

~/environment/toy_app で rails console した時に出たメッセージ

下記メッセージも今回のエラーに関わりがありますか?
参考までにご確認お願いします。

[DEPRECATED] `Bundler.with_clean_env` has been deprecated in favor of `Bundler.with_unbundled_env`. If you instead want the environment before bundler was originally loaded, use `Bundler.with_original_env` (called at /Users/master/.rbenv/versions/2.7.0/lib/ruby/gems/2.7.0/gems/spring-2.0.2/lib/spring/application_manager.rb:95) /Users/master/.rbenv/versions/2.7.0/lib/ruby/gems/2.7.0/gems/actionpack-5.1.6/lib/action_dispatch/middleware/stack.rb:35: warning: Using the last argument as keyword parameters is deprecated; maybe ** should be added to the call /Users/master/.rbenv/versions/2.7.0/lib/ruby/gems/2.7.0/gems/actionpack-5.1.6/lib/action_dispatch/middleware/static.rb:109: warning: The called method `initialize' is defined here Running via Spring preloader in process 19334 Loading development environment (Rails 5.1.6) irb(main):001:0> first_user = User.first /Users/master/.rbenv/versions/2.7.0/lib/ruby/gems/2.7.0/gems/activerecord-5.1.6/lib/active_record/connection_adapters/sqlite3_adapter.rb:30: warning: rb_check_safe_obj will be removed in Ruby 3.0 /Users/master/.rbenv/versions/2.7.0/lib/ruby/gems/2.7.0/gems/activerecord-5.1.6/lib/active_record/connection_adapters/abstract_adapter.rb:82: warning: deprecated Object#=~ is called on Integer; it always returns nil User Load (0.3ms) SELECT "users".* FROM "users" ORDER BY "users"."id" ASC LIMIT ? [["LIMIT", 1]] /Users/master/.rbenv/versions/2.7.0/lib/ruby/gems/2.7.0/gems/activemodel-5.1.6/lib/active_model/type/integer.rb:11: warning: Using the last argument as keyword parameters is deprecated; maybe ** should be added to the call /Users/master/.rbenv/versions/2.7.0/lib/ruby/gems/2.7.0/gems/activemodel-5.1.6/lib/active_model/type/value.rb:6: warning: The called method `initialize' is defined here

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

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

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

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

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

guest

回答1

0

ベストアンサー

「この意味はなんでしょうか?」
RailsでUser.firstとした時に DBサーバーに送ったSQLを表示しています。

rails console のレスポンスを見た限りではエラーは出ていません。

どこをエラーと思いましたか?
うまく行かない と判断したのはどこからですか?

投稿2020/02/11 13:11

winterboum

総合スコア23567

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

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

kyota008

2020/02/11 14:17

ご回答ありがとうございます。とても助かります。consoleから返ってきた結果はエラーではなかったんですね。 rails consoleがチュートリアルと同じ表示になっていなかった為、 User Load (0.3ms) SELECT "users".* FROM "users" ORDER BY "users"."id" ASC LIMIT ? [["LIMIT", 1]] この結果が出た時点でエラーと思い込んでいました。 データベースを一度削除したり、ユーザーやマイクロポストのデータを再登録した場合も上記の結果だった為、うまくいっていないなと判断してしまいました。 このまま進んでみようと思います!
winterboum

2020/02/11 14:19

エラーと思われたのはエラーではないのですが、ちょっと変なのは、そのSQLのメッセージのあと、first_userの内容が表示されるはずなのですが、それは出なかった? pp first_user としてみてください
kyota008

2020/02/11 14:44

お返事ありがとうございます!記憶では出て来なかったと思います。 rails consoleでpp first_user とすると下記の結果になりました。 ❯ rails console Running via Spring preloader in process 3265 Loading development environment (Rails 5.1.6) irb(main):001:0> pp first_user Traceback (most recent call last): 1: from (irb):1 NameError (undefined local variable or method `first_user' for main:Object) irb(main):002:0> NameErrorと出たので関連付けが出来ていないと言うことでしょうか?
winterboum

2020/02/11 23:52

いや、、、 first_user = User.first したあとで、です
kyota008

2020/02/12 10:10

お返事ありがとうございます!!勉強不足お恥ずかしいです。。 rails console で first_user = User.first した後に以下の結果が返ってきました!! irb(main):002:0> pp first_user #<User:0x00007f94c0d5f6b8 id: 1, name: "yyy", email: "xxxxxxxxxxx@gmail.com", created_at: Tue, 11 Feb 2020 13:54:51 UTC +00:00, updated_at: Tue, 11 Feb 2020 13:54:51 UTC +00:00> => #<User id: 1, name: "yyy", email: "xxxxxxxxxxx@gmail.com", created_at: "2020-02-11 13:54:51", updated_at: "2020-02-11 13:54:51"> irb(main):003:0> 変数に保存した情報が取り出せたので、関連付け出来ていると言えそうです!! pp first_user だと見やすい表記で情報を確認出来るのですね。
winterboum

2020/02/12 13:19

ということは、解決?
kyota008

2020/02/12 13:24

解決しました!!ありがとうございます!!今後ともお願いします!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問