はい、こんばんは。
本日は早めの時間での更新となります。
DB設計の添削を待っている間にアウトプットです。
本日もアプリ開発に着手しておりました。
本日はform_forを用いてアプリ投稿画面を作りました。
これまではform_tagを用いて投稿画面を実装していたため、form_forでの実装に戸惑いましたが、なんとか理解(!!)できたのでここに記載します。
ひな形
new.html.erbにて編集しています。
<%= form_for ※モデルクラスのインスタンス do |f| %>
<%= f.label :name%>
<%= f.text_field :name %>
<%= f.label :image_URL %>
<%= f.text_field :Image %>
<%= f.label :text %>
<%= f.text_area :text, style:”width: 100%;height:100%;” %>
<%= f.submit “投稿する” %>
<% end %>
上記の解説をしていきます。
<%= form_for ※モデルクラスのインスタンス do |f| %>
上記の※ですが、モデルクラスのインスタンスとありますが、自身のcontroller内にある、newメソッドを定義している部分から引っ張ってくる。私の場合、下記のように定義していた。
def new
end
実際のコードを書くと
<%= form_for @tweet do |f| %>となる。@tweetにはTweet.newが代入されているので、新しいインスタンスを生成するという意味になる。
※ここでTweetとは、Tweetクラスで作成しているため、ご自分で試される場合は作成されたコントローラ名を入れることとなる。
これで、Tweetコントローラないで定義されているnewの中の@tweetを見にいきなさいという意味になります。
2行目 <%= f.label :name%>
3行目 <%= f.text_field :name %>
これは名前を記述してもらうフォームを作成しました。
f.label・・・名前入力欄上にnameと表示させる。※表示させる言葉は:以下、自分で決める。私の場合、nameと書いているため、nameと表示させると記述した。
f.text_field・・・入力欄を作成するためのコード。
4行目 <%= f.label :image_URL %>
5行目 <%= f.text_field :Image %>
画像投稿欄を作成しました。
6行目 <%= f.label :text %>
7行目 <%= f.text_area :text, style:”width: 100%;height:100%;” %>
8行目 <%= f.submit “投稿する” %>
テキスト入力画面を作成しました。
※f.submit・・・投稿するボタンの生成
ということで、本日はform_forについて解説いたしました。
ショックなことに、今後はform_forよりform_withが主流になってくるとのことです。
しかし、form_forとform_withは似ているので、form_forの使い方を知っているということは有利になるとのことでした。
それでは。
コメント