rails6 既存のテーブルをmodelとして使用する

rails6 既存のテーブルをmodelとして使用する

rails6で既存のテーブルをmodelとして使用するまでの手順を記述してます。Railsのバージョンは6.1.1を使用してます。

環境

  • OS CentOS Linux release 7.9.2009 (Core)
  • Ruby 2.7.2
  • Rails 6.1.1
  • rbenv 1.1.2-40-g62d7798
  • PostgreSQL 13.1

検証用テーブル作成

「mytable」という名前で作成してます。

create table mytable (
  id integer, 
  name varchar(10)
);

insert into public.mytable values (1, 'sato');
insert into public.mytable values (2, 'yamada');
insert into public.mytable values (3, 'suzuki');

「mytable」

model作成

「migration」は作成しないので「–skip-migration」でmodelを作成します。

rails generate model Mytest --skip-migration

model編集

作成された「app/models」配下にある「mytable.rb」を以下のように、
参照するtableとprimary_keyを指定します。

class Mytable < ApplicationRecord
  self.table_name = "mytable"
  self.primary_key = "id"
end

確認

指定したテーブル「mytable」が参照されているか確認してみます。

rails c

irb(main):001:0>  Mytable.find(1)  Mytable Load (0.2ms)  SELECT "mytable".* FROM "mytable" WHERE "mytable"."id" = $1 LIMIT $2  [["id", 1], ["LIMIT", 1]]
=> #<Mytable id: 1, name: "sato">

mytableに存在するid「1」のレコードが取得できていることが確認できます。