teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

3

修正

2018/10/13 05:27

投稿

退会済みユーザー
title CHANGED
@@ -1,1 +1,1 @@
1
- Rubyその言が含まれるタイトル抽出して、そ番号で置換する
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
- その番号に合致す文章(body_md)を
8
+ ### 発生してい問題・エラーメッセージ
8
- [#{name}]/posts/(number)の形に置換したいです
9
9
 
10
+ ```
11
+ エラーメッセージ
12
+ ```
13
+
10
14
  ### 該当のソースコード
11
15
 
12
- ```ruby
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
- =begin
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
- post_all.each{|post|
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
- undefined method `[]' for nil:NilClass (NoMethodError)
24
+ ### 補足情報(FW/ツールのバージョンなど)
25
+
59
- #body_mdの内容が更新できていない
26
+ ここにより詳細な情報を記載しくださ
60
- ```
61
- ### 試したこと
62
- ```ruby
63
- new_body_md = "[" + "#{ref}" + "]" + "/posts/#{name_tbl[ref]}"
64
- #希望の形をとりあえず出力した
65
- ```

2

修正

2018/10/13 05:27

投稿

退会済みユーザー
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

修正

2018/10/10 07:50

投稿

退会済みユーザー
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
  ```