twitterのような簡易チャットアプリを作成しているのですが、ツイートする時にバリデーションを用いてエラーメッセージを表示したかったので、実装しました。
ツイート画面にはブロックがあり、その中にテキストエリアを入れて、ツイートすると言うようなものです。
#やりたい内容
エラーメッセージは文字が出されるのでその文字に合わせてブロックを長くしたいです。
今のままだとメッセージが表示された時にブロックの外に、はみ出てしまいます。
#試した内容
_error.html.haml(エラーメッセージ、今はエラー文は仮置きしています)
- if @tweet.errors.any? - @tweet.errors.full_messages.each do |message| .error-message あああ
new.html.haml(ツイート画面)
.new-field - if @tweet.errors.any? .aaa = form_tag('/tweets', method: :post) do = render 'layouts/error' %h3.new-tweets 投稿する %textarea{placeholder: "投稿してください", name: "text", cols: "30", rows: "10", class: "new-text"} %input{type: "submit", class: "new-submit"}/ %i.fas.fa-camera
new.scss(new.html.hamlのscss)
.new-field { height: 430px; width: 500px; background-color: white; margin: 0 auto; position: relative; top: 80px; } .aaa { height: 500px; width: 500px; background-color: white; }
エラーメッセージが表示された時に長くしたいブロックのクラス名がnew-fieldなのでnew.html.hamlの2、3行目に
- if @tweet.errors.any? .aaa
こう入れてみました。そうしたらエラーメッセージ表示された時に長くなりますが、ブロックの中のテキストや文字
全てがブロックの外に出されます。
調べても出てこなくて分からなかったため、教えてください。
よろしくお願いします。
あなたの回答
tips
プレビュー