質問編集履歴

1

途中経過の追記

2020/07/18 01:57

投稿

tessyman
tessyman

スコア8

test CHANGED
File without changes
test CHANGED
@@ -40,100 +40,26 @@
40
40
 
41
41
 
42
42
 
43
+ ### 途中経過
43
44
 
44
45
 
45
46
 
47
+ 試したことformat withと正規表現を用いてバリデーションを試みました。
46
48
 
47
- 一応、html_safeを使っている記述です。
48
49
 
50
+
49
- /app/helpers/application_heler.rb
51
+ /app/models/post.rb
50
52
 
51
53
  ```ruby
52
54
 
53
- module ApplicationHelper
55
+ validates :text, format: { with: ^(?!.*script).*$ }, presence: true
54
56
 
55
- require "redcarpet"
57
+ ```
56
-
57
- require 'rouge/plugins/redcarpet'
58
-
59
- class HTMLwithCoderay < Redcarpet::Render::HTML
60
-
61
- include Rouge::Plugins::Redcarpet
62
-
63
- def block_code(code, language)
64
-
65
- language = language.split(':')[0]
66
58
 
67
59
 
68
60
 
69
- case language.to_s
61
+ しかし結果はSyntaxエラーになります。
70
62
 
71
- when 'rb'
63
+ 書き方が間違っているのかそもそもformat withの場合このようなバリデーションはかけられないため
72
64
 
73
- lang = 'ruby'
74
-
75
- when 'yml'
76
-
77
- lang = 'yaml'
78
-
79
- when 'css'
80
-
81
- lang = 'css'
82
-
83
- when 'html'
84
-
85
- lang = 'html'
86
-
87
- when ''
88
-
89
- lang = 'md'
90
-
91
- else
92
-
93
- lang = language
94
-
95
- end
96
-
97
-
98
-
99
- CodeRay.scan(code, lang).div
100
-
101
- end
102
-
103
- end
104
-
105
-
106
-
107
- @@markdown = Redcarpet::Markdown.new Redcarpet::Render::HTML,
108
-
109
- autolink: true,
110
-
111
- space_after_headers: true,
65
+ カスタムバリデーターを使った方が良いのか模索中です。
112
-
113
- no_intra_emphasis: true,
114
-
115
- fenced_code_blocks: true,
116
-
117
- tables: true,
118
-
119
- hard_wrap: true,
120
-
121
- xhtml: true,
122
-
123
- lax_html_blocks: true,
124
-
125
- strikethrough: true,
126
-
127
- fencedcodeblocks:true,
128
-
129
- highlight: true
130
-
131
- def html(markdown)
132
-
133
- @@markdown.render(markdown).html_safe
134
-
135
- end
136
-
137
- end
138
-
139
- ```