💎

slimを使ってtextaeraでデータを受け渡す時の書き方(RailsやSinatra版)

2022/01/15に公開

はじめに

本記事は初心者向けに、textareaタグを使った際の初期値の受け渡し方法についてまとめています。

今回の前提

簡単なCRUDアプリを作っていて、メモのタイトルとメモの内容を登録できるようにした。
そしていま、詳細ページから遷移した編集ページを作っている、というような状況を想定して書いています。

Ruby3系、フレームワークは簡易的な実装のためSinatraを使っていますが、Railsでも同じコードで動きます。

編集ページでは、詳細ページのデータを引き継いでフォームに表示する

当たり前ですが、上記のようなUIでないと、何をどう変えたら良いかわからないので、結局全部を書き換えないといけなくなります。
タイトルの3文字目をミスっただけなのに、全部書き換えないといけないし、それが本当に変更していいものなのかわからなくなってしまいます。
そのため、タイトルと内容を、フォームの中に表示してあげる必要があります。

textareaにvalue属性がない

こちらにあるように、実はtextareaタグというのはvalue属性に対応していません。

inputタグは以下のように書けるのですが

input type="text" name="title" value="#{@memo.title}"

textareaタグでそのように書いても動きません。

# これは動かない
textarea name="body" value="#{@memo.body}"

ではどうするかというと、以下のように書けば解決します。

textarea name="body" = @memo.body

以上です。

Discussion