sinatraアプリをつくっています。
activerecordをつかってpostgresqlを操作したいのですが、下記のようなエラーがでます。
ActiveRecord::StatementInvalid at /
PG::UndefinedTable: ERROR: relation "tablenames" does not exist
エラー表示にある"tablenames"というのは今回接続を求めているデータベースとは違うデータベース内のテーブル名です。
指示しているデータベースと違うデータベースと接続しようとしているエラーのようなのですが、対処のしかたがわかりません。
つくったデータベースはmacのターミナルからはsql文で操作できます。
ターミナルでアプリのディレクトリへ移動して、pg_ctl -D でpostgresに接続してからsinatraを立ち上げています。
環境
mac os10
sinatra 1.4.7
activerecord 5.0.0.1
postgresql 9.5.3
データベース名: infodb
テーブル名: infodbs
対処方法がわかるかたがいましたら教えてください。
よろしくお願いいたします。
コードは以下です。
ruby
1--main.rb-- 2 3require 'sinatra' 4require 'sinatra/reloader' 5require 'active_record' 6 7ActiveRecord::Base.establish_connection( 8 adapter: 'postgresql', 9 host: "", 10 username: 'myname', 11 password: "", 12 database: 'infodb' 13) 14 15class Info < ActiveRecord::Base 16end 17 18get '/' do 19 @infos = Info.where("column_name like ?", "%検索ワード%") 20 erb :info 21end
erb
1--info.erb(views)-- 2 3<!DOCTYPE html> 4<html lang="ja"> 5<head> 6 <meta charset="utf-8"> 7</head> 8<body> 9 <% @infos.each do |info| %> 10 <ul> 11 <li><%= "#{info['column_name']}" %></li> 12 </ul> 13 <% end %> 14</body> 15</html>
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/01/12 05:30
2017/01/12 05:48 編集
2017/01/12 23:33