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

回答編集履歴

1

記述場所を追記

2016/02/20 14:23

投稿

miyamiya
miyamiya

スコア691

answer CHANGED
@@ -1,3 +1,22 @@
1
+ まず、viewでの表示の仕方ですが、createメソッドには対応するviewを持っていないので、
2
+ show.html.erb など別の場所に記述する必要があります。デフォルトでは、createを実行したあとは、showの画面へ遷移します(データは持ち越さない)。もし、整形したデータを保存しないのであれば、createの中で整形データを生成する必要は無いかと思います。表示の際に、整形して出力するほうが処理が重複してしまわずに楽かと思います。
3
+
4
+ データを整形せずに保存した場合の記述場所
5
+ createメソッドの中には整形処理を書かない。
6
+
7
+ showメソッドの中で整形処理を記述する。
8
+ ```Ruby
9
+ @content_with_frame = @post.content.gsub(/https:\/\/www.youtube.com\/watch\?v=(\w+)/){"<iframe src='#{$1}'></iframe>"} #@でviewに持ち出せる
10
+ ```
11
+
12
+ 整形したcontentを表示する。
13
+ views/posts/show.html.erb
14
+ ```Ruby
15
+ <%= @content_with_frame %>
16
+ ```
17
+ [gsub参考](http://qiita.com/dogwood008/items/6660fedd1b87a75eb93c)
18
+
19
+ ---編集しました。
1
20
  安直にするなら、ベタで書いてはどうでしょうか。
2
21
  見当違いならすみません。
3
22