AR삽질러

Rails 一日一つメソッド (Day11) + form_with, link_to, each, present?メソッド 본문

Ruby/RubyOnRails-日本語

Rails 一日一つメソッド (Day11) + form_with, link_to, each, present?メソッド

아랑팡팡 2023. 12. 31. 18:25
728x90

 

Rails 一日一つメソッド (Day11) + form_with, link_to, each, present?メソッド

 

今までのRails 一日一つメソッド勉強で足りなかったメソッドについて調べてみる。

 

1. form_with

railsで情報を送信するためのヘルパーメソッド

form_withを使うことにより、簡単な入力フォームに必要なHTMLを作成することができる。

 

 入力された情報をデータベースに保存する時

Modelインスタンスを使う場合

<%= form_with model: ModelClassのインスタンス do |form| %>
	<!-- 内容 -->
<% end %>

 

 入力された情報をデータベースに保存しない時

URL と直接指定する場合

<%= form_with url: "pass" do |form| %>
	<!-- 内容 -->
<% end %>

 

2. link_to

ViewHelperでHTMLハイパーリンクを生成する時に使う。タグの代わりに使用される。

 

link_to使い方

<%= link_to 'リンクテキスト'、'link先URL' or 'パス'%>

メソッドオプションや属性を指定することも可能。

例)”削除”リンクを押してデータを削除する場合 method で deleteを指定することでデータを削除する。また、data:{confim} の確認ダイアログを記述することで、削除前に確認ポップアップが現すこともできる。

<%= link_to '削除する', "パス", method: :delete, data: { confirm: '本当に削除してもOKですか?' } %>

 

リンクテキスト

パス

 

link_toをJavaScriptと使う

<%= link_to, '削除', post_path(@post), method: :delete, data: {confirm: '本当に削除しますか?' } %>

 

 

3. each

配列の中身を一つずつ取り出すメソッド

 

eachメソッドの使い方

配列.each do |変数|
	# 処理
end

 

[1, 2, 3, 4, 5].each do |number| 
	puts number
end

arr = [1, 2, 3, 4, 5]
arr.each do |number|
	puts number
end

# 1
# 2
# 3
# 4
# 5

 

railsでeachメソッドの使用

<% @users.each do |user| %>
	<%= user.name %>
<% end %>

 

 

4. present?

preset?メソッドを使用したオブジェクトが存在すればtrueを返し、存在しなければfalseを返すメソッド

 

present?メソッドの使い方

Object.present?

 

user_name = "Arang"
user_name.present?
=> true
=> false

 

文字列で使用

"".present?  # false
"  ".present?  # false
#text".present?  # true

 

配列で使用

[].present?  # false
[1, 2, 3].present?  # true

 

ハッシュで使用

{}.present?  # false
{ key: "value" }.present?  # true

 

railsで使用

if params[:name].present?
	# params[:name]が存在する場合の処理
end

 

 

728x90
반응형
LIST