質問編集履歴

2

追加編集しました。

2018/05/11 06:53

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -32,7 +32,7 @@
32
32
 
33
33
  #新着記事を取得
34
34
 
35
- feedUrl = 'https://sharedine.me/shokuiku-media/feed/'
35
+ feedUrl = 'https://*********/feed/'
36
36
 
37
37
  rss = RSS::Parser.parse(feedUrl)
38
38
 
@@ -154,7 +154,7 @@
154
154
 
155
155
  ActiveRecord::ActiveRecordError: cannot update a new record
156
156
 
157
- from /home/developer/app/sharedine/vendor/bundle/ruby/2.4.0/gems/activerecord-5.1.2/lib/active_record/persistence.rb:326:in `update_columns'
157
+ from /home/developer/app/*******/vendor/bundle/ruby/2.4.0/gems/activerecord-5.1.2/lib/active_record/persistence.rb:326:in `update_columns'
158
158
 
159
159
 
160
160
 

1

ご指摘ありがとうございます。内容修正いたしました。何卒よろしくお願いいたします。

2018/05/11 06:53

投稿

退会済みユーザー
test CHANGED
@@ -1 +1 @@
1
- RSS取得し、DBに格納したい!
1
+ RSS取得し、DBに上書きして格納したい!
test CHANGED
@@ -1,12 +1,14 @@
1
1
  ### 前提・実現したいこと
2
2
 
3
- WPのRSSの上位3つを取得して、DBに突っ込みたい。
3
+ WPのRSSの上位3つを取得して、DBに突っ込みたいです
4
4
 
5
- その際に、順番を振りたくその値(rank)を増やしい。
5
+ その際に、順番を振りたくその値(rank)を増やします
6
6
 
7
- 2回目以降は【rank】【type】は固定をupdateするようにしたい。
7
+ each文RSS記事1つずつ取り出しupdateするようにしたいです
8
8
 
9
9
 
10
+
11
+ 過去に入っていたレコードは必要なく、上書きしたいです。
10
12
 
11
13
  お知恵を貸していただいけないでしょうか。。。
12
14
 
@@ -14,53 +16,55 @@
14
16
 
15
17
  ### Ruby
16
18
 
17
-
18
-
19
19
  ```
20
20
 
21
- require 'rss'
21
+ require 'rss'
22
22
 
23
+ class WpEntriesJob < ApplicationJob
23
24
 
24
-
25
- feedUrl = 'https://********/feed/'
26
-
27
- rss = RSS::Parser.parse(feedUrl)
25
+ queue_as :default
28
-
29
-
30
-
31
- if ???
32
26
 
33
27
 
34
28
 
35
29
 
36
30
 
37
- else
31
+ # def perform
38
32
 
39
- wp_entry = WpEntry.new
33
+ #新着記事を取得
40
34
 
41
- wp_entry.type = "トップページ"
35
+ feedUrl = 'https://sharedine.me/shokuiku-media/feed/'
42
36
 
37
+ rss = RSS::Parser.parse(feedUrl)
38
+
39
+ #DBに新たに新着3件の記事を格納(idも再び1からとなる)
40
+
41
+ rss.items.first(3).each.with_index(1) do |item, i|
42
+
43
+ wpentry = WpEntry.new
44
+
45
+ wpentry.rank = "#{i}"
46
+
43
- wp_entry.rank += 1
47
+ wpentry.type = 0
48
+
49
+ wpentry.title = item.title
50
+
51
+ wpentry.link = item.link
52
+
53
+ wpentry.category = item.category
54
+
55
+ wpentry.date = item.date
56
+
57
+ wpentry.description = item.description
58
+
59
+ wpentry.update_columns rank: wpentry.rank, type: wpentry.type, title: wpentry.title, link: wpentry.link, category: wpentry.category, date: wpentry.date, description: wpentry.description
60
+
61
+ # end
62
+
63
+ end
64
+
65
+ end
44
66
 
45
67
 
46
-
47
- rss.items.first(3).each do |item|
48
-
49
- wp_entry.title = item.title
50
-
51
- wp_entry.link = item.link
52
-
53
- wp_entry.category = item.category.content
54
-
55
- wp_entry.date = I18n.l(item.date)
56
-
57
- wp_entry.description = item.description
58
-
59
- wp_entry.save!
60
-
61
- end
62
-
63
-
64
68
 
65
69
  ```
66
70
 
@@ -94,6 +98,84 @@
94
98
 
95
99
  ```
96
100
 
101
+ ###console
102
+
103
+ ```ここに言語を入力
104
+
105
+ [21] pry(main)> require 'rss'
106
+
107
+ => false
108
+
109
+ [22] pry(main)> class WpEntriesJob < ApplicationJob
110
+
111
+ [22] pry(main)* queue_as :default
112
+
113
+ [22] pry(main)*
114
+
115
+ [22] pry(main)*
116
+
117
+ [22] pry(main)* # def perform
118
+
119
+ [22] pry(main)* #新着記事を取得
120
+
121
+ [22] pry(main)* feedUrl = 'https://*******/*******/feed/'
122
+
123
+ [22] pry(main)* rss = RSS::Parser.parse(feedUrl)
124
+
125
+ [22] pry(main)* #DBに新たに新着3件の記事を格納(idも再び1からとなる)
126
+
127
+ [22] pry(main)* rss.items.first(3).each.with_index(1) do |item, i|
128
+
129
+ [22] pry(main)* wpentry = WpEntry.new
130
+
131
+ [22] pry(main)* wpentry.rank = "#{i}"
132
+
133
+ [22] pry(main)* wpentry.type = 0
134
+
135
+ [22] pry(main)* wpentry.title = item.title
136
+
137
+ [22] pry(main)* wpentry.link = item.link
138
+
139
+ [22] pry(main)* wpentry.category = item.category
140
+
141
+ [22] pry(main)* wpentry.date = item.date
142
+
143
+ [22] pry(main)* wpentry.description = item.description
144
+
145
+ [22] pry(main)* wpentry.update_columns rank: wpentry.rank, type: wpentry.type, title: wpentry.title, link: wpentry.link, category: wpentry.category, date: wpentry.date, description: wpentry.description
146
+
147
+ [22] pry(main)* # end
148
+
149
+ [22] pry(main)* end
150
+
151
+ [22] pry(main)* end
152
+
153
+
154
+
155
+ ActiveRecord::ActiveRecordError: cannot update a new record
156
+
157
+ from /home/developer/app/sharedine/vendor/bundle/ruby/2.4.0/gems/activerecord-5.1.2/lib/active_record/persistence.rb:326:in `update_columns'
158
+
159
+
160
+
161
+
162
+
163
+ ```
164
+
165
+ ###試したこと
166
+
167
+ update?の使い方やら、配列?ハッシュ?の理解がまだまだ足りていないようです。
168
+
169
+ 色々書き方試してみましたがうまく行きません。
170
+
171
+ sql文でTRUNCATE TABLEは使わない方法で探しています。
172
+
173
+ table削除してしまうと、ページ真っ白になってしまうみたいです。
174
+
175
+
176
+
177
+
178
+
97
179
 
98
180
 
99
181
  ### 補足情報(FW/ツールのバージョンなど)