回答編集履歴
4
表現を微修正
test
CHANGED
@@ -1,16 +1,18 @@
|
|
1
1
|
データが micropost.prefecture に文字列として保存されているので、一度配列に変換する必要があります。
|
2
|
-
|
2
|
+
文字列から配列への変換は `JSON.parse` 辺りが手っ取り早いですかね。
|
3
3
|
|
4
4
|
```erb
|
5
5
|
<span class="prefecture"><%= JSON.parse(micropost.prefecture).join(",") %></span>
|
6
6
|
```
|
7
|
+
|
8
|
+
文字列化された ruby のオブジェクトを json としてパースするのは少し強引ですが、単純な配列に限れば十分機能します。
|
7
9
|
|
8
10
|
--
|
9
11
|
|
10
12
|
もしDBがサポートしているなら、カラムを「配列型」や「json型」に変えてしまうという手もあります。
|
11
13
|
自前での JSON.parse が不要になりますし、検索やインデックスの面でも有利です。
|
12
14
|
|
13
|
-
|
15
|
+
以下は PostgreSQL 用のリンクですが、他のDBでも似たようなことができるはずです。
|
14
16
|
- [Active Record と PostgreSQL - 1.2 配列 | Rails ガイド](https://railsguides.jp/active_record_postgresql.html#%E9%85%8D%E5%88%97)
|
15
17
|
- [Active Record と PostgreSQL - 1.4 JSONとJSONB | Rails ガイド](https://railsguides.jp/active_record_postgresql.html#json%E3%81%A8jsonb)
|
16
18
|
|
3
a
test
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
データが micropost.prefecture に文字列として保存されているので、一度配列に変換する必要があります。
|
2
|
-
一番手っ取り早いのは `JSON.parse` でしょうか
|
2
|
+
一番手っ取り早いのは `JSON.parse` でしょうか。
|
3
3
|
|
4
4
|
```erb
|
5
5
|
<span class="prefecture"><%= JSON.parse(micropost.prefecture).join(",") %></span>
|
2
a
test
CHANGED
@@ -8,7 +8,7 @@
|
|
8
8
|
--
|
9
9
|
|
10
10
|
もしDBがサポートしているなら、カラムを「配列型」や「json型」に変えてしまうという手もあります。
|
11
|
-
|
11
|
+
自前での JSON.parse が不要になりますし、検索やインデックスの面でも有利です。
|
12
12
|
|
13
13
|
一応、PostgreSQL 用のリンクを貼っておきます。
|
14
14
|
- [Active Record と PostgreSQL - 1.2 配列 | Rails ガイド](https://railsguides.jp/active_record_postgresql.html#%E9%85%8D%E5%88%97)
|
1
配列のリンクを追加
test
CHANGED
@@ -1,33 +1,20 @@
|
|
1
1
|
データが micropost.prefecture に文字列として保存されているので、一度配列に変換する必要があります。
|
2
|
-
|
3
2
|
一番手っ取り早いのは `JSON.parse` でしょうか?
|
4
3
|
|
5
|
-
|
6
|
-
|
7
4
|
```erb
|
8
|
-
|
9
5
|
<span class="prefecture"><%= JSON.parse(micropost.prefecture).join(",") %></span>
|
10
|
-
|
11
6
|
```
|
12
|
-
|
13
|
-
|
14
7
|
|
15
8
|
--
|
16
9
|
|
10
|
+
もしDBがサポートしているなら、カラムを「配列型」や「json型」に変えてしまうという手もあります。
|
11
|
+
手動での JSON.parse が不要になりますし、検索やインデックスの面でも有利です。
|
17
12
|
|
18
|
-
|
19
|
-
カラムを jsonb 型に変えてしまえば、手動での JSON.parse が不要となり、またインデックスも使えるようになります。
|
20
|
-
|
21
|
-
|
13
|
+
一応、PostgreSQL 用のリンクを貼っておきます。
|
22
|
-
|
14
|
+
- [Active Record と PostgreSQL - 1.2 配列 | Rails ガイド](https://railsguides.jp/active_record_postgresql.html#%E9%85%8D%E5%88%97)
|
23
|
-
[Active Record と PostgreSQL - 1.4 JSONとJSONB | Rails ガイド](https://railsguides.jp/active_record_postgresql.html#json%E3%81%A8jsonb)
|
15
|
+
- [Active Record と PostgreSQL - 1.4 JSONとJSONB | Rails ガイド](https://railsguides.jp/active_record_postgresql.html#json%E3%81%A8jsonb)
|
24
|
-
|
25
|
-
|
26
16
|
|
27
17
|
--
|
28
18
|
|
29
|
-
|
30
|
-
|
31
19
|
データベースのカラムに配列を保存するという行為は、「ジェイウォーク」と呼ばれるアンチパターンである点には注意してください。
|
32
|
-
|
33
20
|
詳しくは「SQLアンチパターン ジェイウォーク」でググれば色々情報が出てくると思います。
|