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

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

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

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

Active Record

Active Recordは、一つのオブジェクトに対しドメインのロジックとストレージの抽象性を結合するデザインパターンです。

Q&A

解決済

1回答

853閲覧

tableの追加・削除について

ma-------ro

総合スコア8

Ruby on Rails

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

Active Record

Active Recordは、一つのオブジェクトに対しドメインのロジックとストレージの抽象性を結合するデザインパターンです。

0グッド

0クリップ

投稿2020/05/26 14:33

#経緯
ドットインストールにてActiveRecordを勉強しているのですが、ruby main.rbの実行をしたときにエラーが表示されました。

#エラーコード
main.rb:9: syntax error, unexpected =>, expecting end-of-input
"database" => "./myapp.db"

#行いたいこと
import.sqlのテーブルにname textを追加
またはcreate tableを削除し,最初から作り直したい。

コード

sql

1ファイル名 import.sql 2 3create table users ( 4 id integer primary key, 5 age integer, 6 created_at, 7 updated_at 8);

教材では3行目に(name text)が入っている

ファイル名 main.rb require 'active_record' require 'pp' Time.zone_default = Time.find_zone! 'Tokyo' ActiveRecord::Base.default_timezone = :local ActiveRecord::Base.establish_connection( "adapter" => "sqlite3" "database" => "./myapp.db" ) class User < ActiveRecord::Base end #insert user = User.new user.name = "tanaka" user.age = 23 user.save # user = User.new(:name => "hayashi" , :age=> 25) user = User.new(name: "hayashi" , age: 25) user.save user.create(name: "hoshi", age: 22)

つたない文章ですみません。
どうぞよろしくお願い致します。

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

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

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

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

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

guest

回答1

0

ベストアンサー

ruby

1ActiveRecord::Base.establish_connection( 2 "adapter" => "sqlite3", # ここのコンマが抜けている 3 "database" => "./myapp.db" 4)

投稿2020/05/26 14:45

maisumakun

総合スコア145183

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

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

ma-------ro

2020/05/27 13:38

毎度回答くださいましてありがとうございます。 大変感謝しております。 コードを間違えていたのですね、もっとしっかり確認するように致します。 続けて質問させていただいただきたいのですが、コードを直し再度、実行をしたのですが、main.rb:4:in `<main>': undefined method `find_zone!' for Time:Class (NoMethodError) こちらのエラーが表示されてしまいました。 やはり、テーブルの作成を間違えてしまったためでしょうか? もし宜しければ、テーブルの作成方法も教えていただけないでしょうか?
maisumakun

2020/05/27 14:17

Time.find_zone!はRails拡張ですので、activesupportの読み込みが必要です。
maisumakun

2020/05/27 14:19

(むしろ、テーブルの読み込みも始めていないfind_zone!のエラーで、どうして「テーブルの作成を間違えてしまった」と考えたのかのほうが気になります)
ma-------ro

2020/05/28 14:13

返答ありがとうございます。 教えていただいた通りactivesupportの読み込みを行いエラーが解消されました。 追記の質問まで丁寧にお答えくださいまして、本当にありがとうございます!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問