LoginSignup
0
0

More than 1 year has passed since last update.

【Rails】【Ruby】form_with で入力された値(params)を取得したい!

Posted at

はじめに

未経験からエンジニアに転職しました。
まだまだわからないことだらけですが、毎日楽しく働いています!

業務や個人開発での発見やエラー解決などをアウトプットしています。
初学者向けの内容です。

やること

Railsの form_with で入力された値を取得して色々操作したい。
今回はサンプルとして
「form_with で入力されたID(数値)を取得して、そのID(数値)を使ってデータを操作する」をやってみる。

手順

view
<%= form_with url: huga_huga_path, method: :patch, local: true do |f| %>
 <div class="field">
                # :hoge_id がparams になる
  <%= f.text_area :hoge_id, class: 'textarea' %>
  <%= f.submit %>
 </div>
<% end %>

スクリーンショット 2022-06-03 8.31.51.png
↑のように、textarea に数値が複数入力されたと想定する。

form に入力された値を取得するには、

params[:hoge_id]

上記のように書く。

view で↓のように、「:hoge_id」と書いた部分がparamsになる

<%= f.text_area :hoge_id, class: 'textarea' %>

使い方のサンプル

このサンプルでは、↓をやってみる。
「入力された数値を取得して、その数値と同じidのデータをupdate_all で一括更新する」

controller
# fromに入力された数値を取得する
# .split(/\R/) をすることで、改行して入力された数値を区切ることができる
hoge_ids = params[:hoge_id].split(/\R/)

# DBから、数値が同じIDかつステータスがdraftのデータを検索してきて、
huga = Model.where(id: hoge_ids, status: :draft)

# update_all で、データを一括で更新する
huga.update_all(status: :published, published_at: Time.current)

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0