質問編集履歴

1

追記

2020/01/09 03:57

投稿

yuuki0218
yuuki0218

スコア22

test CHANGED
File without changes
test CHANGED
@@ -99,3 +99,39 @@
99
99
  : INSERT INTO "process_result" ("process_id", "process_user_id", "process_job_id", "process_job_name", "process_start_time", "process_result", "file_name") VALUES ($1, $2, $3, $4, $5, $6, $7) RETURNING "[:process_id, :process_user_id]"):
100
100
 
101
101
  ```
102
+
103
+
104
+
105
+ ## 追記
106
+
107
+ 問題としては、複合主キーを利用していることが悪いようでした。
108
+
109
+ 以下モデルの、self.primary_keyで複合主キーを定義していましたが、モデルが古いRails(3.0.1)で書かれたコードであるため、最新の構文?にあってなかったように思えます。
110
+
111
+ composite_primary_keysというGemを導入して、primary_keysという書き方をすれば一応動きました。
112
+
113
+ ```model
114
+
115
+ # coding: utf-8
116
+
117
+ class ProcessResult < ActiveRecord::Base
118
+
119
+ self.table_name = 'process_result'
120
+
121
+ self.primary_key = :process_id, :process_user_id
122
+
123
+ attr_accessor :search_data,:start_time,:end_time
124
+
125
+ end
126
+
127
+
128
+
129
+ ```
130
+
131
+
132
+
133
+ 少し質問の趣旨とは外れるのですが、
134
+
135
+ RailsってDBのスキーマ側でプライマリーキーを定義していれば、どのフィールドがPKかはRailsが勝手に判断してくれたりするんでしょうか?
136
+
137
+ つまり、モデルファイル上でself.primary_keyのように明示的に指定する必要が無ければ削除してしまうかと思うのですが、どうでしょうかね?