質問編集履歴
3
修正
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
|
1
|
+
文章の一部分をのみを置換したい
|
body
CHANGED
@@ -1,65 +1,26 @@
|
|
1
|
+
文章の一部分をのみを置換したい
|
1
|
-
### 前提
|
2
|
+
### 前提・実現したいこと
|
2
|
-
複数の文章(post_all)の中から、[[ ]]内に含まれる文言を抽出して
|
3
|
-
そのタイトルを検索して(name)、その番号(number)を取得しています
|
4
3
|
|
5
|
-
|
4
|
+
ここに質問の内容を詳しく書いてください。
|
5
|
+
(例)PHP(CakePHP)で●●なシステムを作っています。
|
6
|
+
■■な機能を実装中に以下のエラーメッセージが発生しました。
|
6
7
|
|
7
|
-
|
8
|
+
### 発生している問題・エラーメッセージ
|
8
|
-
[#{name}]/posts/(number)の形に置換したいです
|
9
9
|
|
10
|
+
```
|
11
|
+
エラーメッセージ
|
12
|
+
```
|
13
|
+
|
10
14
|
### 該当のソースコード
|
11
15
|
|
12
|
-
```
|
16
|
+
```ここに言語名を入力
|
13
|
-
post_all = [
|
14
|
-
{"number" => 12345, "name" => "foo", "body_md" => "[[hoge]]"},
|
15
|
-
{"number" => 67890, "name" => "hoge","body_md" => "[[none]]"},
|
16
|
-
{"number" => 99999, "name" => "bar", "body_md" => "foo"},
|
17
|
-
{"number" => 11111, "name" => "baz", "body_md" => "[[hoge]][[bar]]"}
|
18
|
-
]
|
19
|
-
name_tbl = post_all.map{|post| post.values_at('name', 'number') }.to_h
|
20
|
-
post_all.each{|post|
|
21
|
-
body_md = post['body_md']
|
22
|
-
name = post['name']
|
23
|
-
number = post['number']
|
24
|
-
body_md.scan(/[[(.+?)]]/){|(ref)|
|
25
|
-
puts "#{name}: #{ref} => #{name_tbl[ref]}"
|
26
|
-
|
17
|
+
ソースコード
|
27
|
-
foo: hoge => 67890
|
28
|
-
hoge: none =>
|
29
|
-
baz: hoge => 67890
|
30
|
-
baz: bar => 99999
|
31
|
-
=end
|
32
|
-
}
|
33
|
-
}
|
34
18
|
```
|
35
19
|
|
36
20
|
### 試したこと
|
37
21
|
|
38
|
-
```ruby
|
39
|
-
post_all = [
|
40
|
-
{"number" => 12345, "name" => "foo", "body_md" => "[[hoge]]"},
|
41
|
-
{"number" => 67890, "name" => "hoge","body_md" => "[[none]]"},
|
42
|
-
{"number" => 99999, "name" => "bar", "body_md" => "foo"},
|
43
|
-
{"number" => 11111, "name" => "baz", "body_md" => "[[hoge]][[bar]]"}
|
44
|
-
]
|
45
|
-
name_tbl = post_all.map{|post| post.values_at('name', 'number') }.to_h
|
46
|
-
|
22
|
+
ここに問題に対して試したことを記載してください。
|
47
|
-
body_md = post['body_md']
|
48
|
-
name = post['name']
|
49
|
-
number = post['number']
|
50
|
-
body_md.scan(/[[(.+?)]]/){|(ref)|
|
51
|
-
body_md.gsub!(/[[(.+)]]/, '[\1](/posts/' + "#{$name_tbl[ref]})")
|
52
|
-
}
|
53
|
-
}
|
54
|
-
```
|
55
23
|
|
56
|
-
### エラー
|
57
|
-
```ruby
|
58
|
-
|
24
|
+
### 補足情報(FW/ツールのバージョンなど)
|
25
|
+
|
59
|
-
|
26
|
+
ここにより詳細な情報を記載してください。
|
60
|
-
```
|
61
|
-
### 試したこと
|
62
|
-
```ruby
|
63
|
-
new_body_md = "[" + "#{ref}" + "]" + "/posts/#{name_tbl[ref]}"
|
64
|
-
#希望の形をとりあえず出力した
|
65
|
-
```
|
2
修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
### 実現したいこと
|
6
6
|
|
7
7
|
その番号に合致する文章(body_md)を
|
8
|
-
/posts/(number)の形に置換したいです
|
8
|
+
[#{name}]/posts/(number)の形に置換したいです
|
9
9
|
|
10
10
|
### 該当のソースコード
|
11
11
|
|
1
修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -35,8 +35,6 @@
|
|
35
35
|
|
36
36
|
### 試したこと
|
37
37
|
|
38
|
-
|
39
|
-
|
40
38
|
```ruby
|
41
39
|
post_all = [
|
42
40
|
{"number" => 12345, "name" => "foo", "body_md" => "[[hoge]]"},
|
@@ -53,4 +51,15 @@
|
|
53
51
|
body_md.gsub!(/[[(.+)]]/, '[\1](/posts/' + "#{$name_tbl[ref]})")
|
54
52
|
}
|
55
53
|
}
|
54
|
+
```
|
55
|
+
|
56
|
+
### エラー
|
57
|
+
```ruby
|
58
|
+
undefined method `[]' for nil:NilClass (NoMethodError)
|
59
|
+
#body_mdの内容が更新できていない
|
60
|
+
```
|
61
|
+
### 試したこと
|
62
|
+
```ruby
|
63
|
+
new_body_md = "[" + "#{ref}" + "]" + "/posts/#{name_tbl[ref]}"
|
64
|
+
#希望の形をとりあえず出力した
|
56
65
|
```
|