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

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

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

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

Ruby on Rails

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

Q&A

解決済

1回答

1061閲覧

ruby on rails エラー

yusuke3627

総合スコア7

Ruby

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

Ruby on Rails

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

0グッド

0クリップ

投稿2017/05/17 05:22

###前提・実現したいこと
現在ruby,ruby on railsを一から学習している初心者です。
現在 to do listを作成しているのですが、

SQLite3::SQLException: no such column: tasks.project_id: SELECT "tasks".* FROM "tasks" WHERE "tasks"."project_id" = ?

というエラー文から復帰することができません。

--show.html.erb

<h1><%= @project.title %></h1> <ul> **<% @project.tasks.each do |task| %>** <li><%= task.title %></li> <% end %> <li> <%= form_for [@project, @project.tasks.build] do |f| %> <%= f.text_field :title %> <%= f.submit %> <% end %> </li> </ul>

--task.rb
class Task < ActiveRecord::Base
belongs_to :project
end

--Migration File
class CreateTasks < ActiveRecord::Migration
def change
create_table :tasks do |t|
t.string :title
t.boolean :done, default: false
t.references :project, index: true, foreign_key: true

t.timestamps end

end
end

どこを直せば良いでしょうか?
ご教示頂きたいです。

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

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

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

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

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

guest

回答1

0

ベストアンサー

#初心者の方へ
初心者の方は初心者マークをつけてください。質問投稿画面の左上の若葉マークです。
また、質問時に
OS,Rubyのversion Railsのversionを明記するのは最低限の礼儀です。
OS,versionよって回答が大きく変わる可能性があり、回答者の手間が増大します。

また、入力画面の</>マークを押してここに言語を入力をrubyに置き換えると

ruby

1t.references :project, index: true, foreign_key: true

こんな風に見やすい形で表示してくれます。
これが、最低限です。詳しくは質問するときのヒントを見てください。

#ここから回答
Migration File は
rake db:migrate の後に変更しましたか?

ruby

1 t.references :project, index: true, foreign_key: true

が反映されていないことによるエラーです。

cmd or powershell (win)か terminal(mac)で下記のコマンドを実行しその後

cmd

1rails generate migration AddProjectsToTasks project_id:integer
rake db:migrate

としてください
参考サイト

結局内容としては、tasks tableに project_idというcolumnを追加しているだけなので
DB Browser for SQLite等のsqlブラウザー(SQLのデータをGUIで確認変更できるツール)
変更をかけてもいいです。

投稿2017/05/17 09:24

moke

総合スコア2241

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

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

yusuke3627

2017/05/17 13:49

数々の無礼、失礼致しました。 以後、気を付けます。 またご丁寧にご教授頂きましてありがとうございました。 無事解決致しました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問