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

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

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

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

Q&A

解決済

1回答

6737閲覧

ActiveRecord::StatementInvalidエラー

退会済みユーザー

退会済みユーザー

総合スコア0

Ruby on Rails

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

0グッド

0クリップ

投稿2017/09/22 08:46

たびたびお世話になります。

突然、ActiveRecord::StatementInvalidエラーが出るようになってしまいました。
ついさっきまでは、問題なく保存ができていたのですが。。。

以下がエラー文になります。

Started POST "/work_in/create" for ::1 at 2017-09-22 17:44:27 +0900 Processing by WorkInController#create as HTML Parameters: {"utf8"=>"✓", "authenticity_token"=>"vEbCTfEBBAMCJiNevwrMWtYZUktR2aTECI7xocxr3IhnRxT27nPWdrXkStcFtmBEi6iLxOlF0i1qmFfZTURjcw=="} (0.1ms) begin transaction SQL (5160.2ms) INSERT INTO "working_times" ("work_in_time", "created_at", "updated_at") VALUES (?, ?, ?) [["work_in_time", -4712-01-01 00:00:00 UTC], ["created_at", 2017-09-22 08:44:27 UTC], ["updated_at", 2017-09-22 08:44:27 UTC]] (0.2ms) rollback transaction Completed 500 Internal Server Error in 5164ms (ActiveRecord: 5160.5ms) ActiveRecord::StatementInvalid (SQLite3::BusyException: database is locked: INSERT INTO "working_times" ("work_in_time", "created_at", "updated_at") VALUES (?, ?, ?)):

ruby

1#controller 2class WorkInController < ApplicationController 3 def index 4 end 5 6 def new 7 end 8 9 def create 10 @work_in_time = WorkingTime.new 11 @work_in_time.work_in_time = DateTime.new 12 13 if @work_in_time.save 14 redirect_to top_page_path 15 flash[:notice] = "出勤時間を記録しました!" 16 else 17 redirect_to top_page_path 18 flash[:alert] = "出勤時間を記録できませんでした。もう一度お試しください。" 19 end 20 end 21 22end

初歩的な質問で申し訳ないですが、ご教授いただければと思います。
どうぞよろしくお願い致します。

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

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

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

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

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

guest

回答1

0

ベストアンサー

rails consoleを実行して以下を実行してみてはいかがでしょうか?
ActiveRecord::Base.connection.execute("BEGIN TRANSACTION; END;")

投稿2017/09/22 09:02

kenny_sayama

総合スコア1036

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

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

退会済みユーザー

退会済みユーザー

2017/09/22 09:08

ありがとうございます! 自分で調べてみたところ、それを実行して一度エラーから抜け出しても、 保存時にcreateメソッドでまた同じエラーになってしまいます・・・
kenny_sayama

2017/09/22 09:19

database.ymlに以下のようにtimeoutを変更してみてはいかがでしょうか? development: adapter: sqlite3 database: hogehoge pool: 20 timeout: 5000
退会済みユーザー

退会済みユーザー

2017/09/22 09:23

うまくいきました! もとの設定は、pool: 5, timeout: 5000でした。 ご丁寧にお答えいただき、ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問