質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Q&A

1回答

371閲覧

helperを使ったビューの変更はできますでしょうか?

tarotarotarotar

総合スコア41

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

0グッド

0クリップ

投稿2021/05/12 15:35

編集2021/05/12 15:37

helperファイルにviewを描画するメソッドをかけると思います。

DOMを生成するには返り値に

ruby

1content_tag(:div, class: 'aaa')

などとすることでhtmlを生成できると認識しております。

ここで質問なのですが、既に存在しているDOMに対してclassを付与, valueを付与することができるコードはありますでしょうか?

viewに型を作っておいて

html

1<div class='target'> 2<p>ここにhelperメソッドの返り値を入れます</p> 3</div> 4

このtargetクラスのdivvalue='true'を付与したいのですが・・・

jqueryでいうところの$('.text').addClass();$('.test').text();です。

もしご存知でしたら教えて下さい。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2021/05/12 20:16

これはどういうタイミングででしょうか。
guest

回答1

0

既に存在しているDOMに対して

DOMを構築するのはブラウザであり、その時点でRailsの処理は終了しているので
DOMに対して処理をするというのは不可能です。


精査はしていませんが

erb

1<%= helper_function do %> 2<div class='target'> 3 <p>aaaa</p> 4</div> 5<% end %>

html

1<div class='target' value="true"> 2 <p>aaaa</p> 3</div>

ならば可能性はあるかもしれません


もし、なんらかの外部サービスやユーザーの入力等からhtmlを受け取りそれを加工したい
というのであればloofahを用います

lang

1add_value = Loofah::Scrubber.new do |node| 2 node["value"] = "true" if node.name == "div" && node.class == "target" 3end 4 5Loofah.fragment(<<~HTML).scrub!(:prune).scrub!(add_value).to_s 6 <div class='target'> 7 <p>aaaa</p> 8 </div> 9HTML

投稿2021/05/12 23:36

asm

総合スコア15149

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問