質問編集履歴
1
追記
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のように明示的に指定する必要が無ければ削除してしまうかと思うのですが、どうでしょうかね?
|