SlideShare a Scribd company logo
Railsらしい
1対多の画面作成
2018.01.27
K.Yamamoto
Railsは簡単?
• rails g scaffoldで簡単に画面作成?
• scaffoldで出来るのは足場でしかない。
• 単一のModelを扱う画面だけで構成されるWeb
システムはありえない。
• リレーションを扱う必要がある
要件
• グループごとにユーザーを扱う
• グループ
• グループ名(必須)
• ユーザー
• ユーザー名
• 年齢
• グループ1に対してユーザーがnの関係
ここでは2つの手法を
学習します
• Nested Resources
• グループに対してユーザーを操作するような画面を作る時に利用し
ます
• Nested Attributes
• ひとつの画面で複数行のデータを登録・修正するときに利用します
• 注意
• この2つは対になっているわけではなく2つを組み合わせて利用す
る場合もありえます。
Nested Resources
• こんなURL見たことない?
• http://localhost:3000/groups/1/users/3
グループIDが1番の情報
グループIDが1番の情報に含まれる
ユーザーIDが3番の情報
Nested Resources
グループのshowの画面が
ユーザーのindex画面となっている。
Nested Resources
Rails.application.routes.draw do
root to: 'groups#index'
resources :groups do
resources :users, except: :index
end
end
routes.rb
groupsの中にusersを入れる。
usersのindexはgroupsのshowなの
で、 except: :indexで除外する。
Nested Resources
• おいしいところ
• UsersControllerで必ずGroupのインスタンス
が取得できる。
• ということはUser取得時に必ずGroupに属
していることが検証できる。
def set_user
@user = @group.users.find(params[:id])
end
Nested Resources
• おいしいところ
• パラメータの有無の検証が不要
• もしNested Resourcesを使わなかったら
• /users/1?group_id=1
• Controllerから見てgroup_idがやってく
るかどうか分からない
Nested Resources
• ユーザーのFormの作成
= form_with(model: [group, user], local: true) do ¦form¦
= render partial: 'shared/error', locals: { errors: user.errors }
.col-sm-8.col-sm-offset-2
.form-group
= form.label :name
= form.text_field :name, class: 'form-control'
.form-group
= form.label :age
= form.text_field :age, class: 'form-control'
.form-group
= form.submit '登録', class: 'btn btn-success'
app/views/users/_form.html.slim
インスタンスを2つ配列でセットする
Nested Resources
• ワンポイント
• URLを見ればネストしているのが分かるが、画面構
成は普通のCRUDなのでネストしているのがわかり
にくい
• パンくずリストを導入(gretel.gem)
Nested Attributes
• 一つの画面で1対多のデータを登録・更新する
Nested Attributes
class Group < ApplicationRecord
has_many :users, dependent: :destroy
validates :name, presence: true
accepts_nested_attributes_for :users, reject_if: ->(v){ v[:name].blank? &&
v[:age].blank? }, allow_destroy: true
end
app/models/group.rb
• reject_if
• 無効化される行の条件
• allow_destroy
• _destroyという特殊なパラメータで行削除できるようにする
Nested Attributes
def group_params
params.require(:group).
permit(:name, :content, users_attributes: [:name, :age, :_destroy, :id])
end
app/controllers/groups_controller.rb
• Strong Parameter
• パラメータ名+attributesをキーとして、項目名を配列で指定
• _destroy
• Form上の削除用チェックボッスに対応する。
• id
• UserモデルのID
Nested Attributes
= form.fields_for(:users) do ¦user_form¦
tr.d-flex
td.col-6
= user_form.text_field :name, class: 'form-control'
td.col-3
= user_form.text_field :age, class: 'form-control'
td.col-3
= user_form.check_box :_destroy
app/views/groups/_form.html.slim
• form.fields_for
• nested_attributsで指定したModelで新たに
Formを生成する
まとめ
• Nested Resources
• URLでリソースを入れ子にして扱うことができる。パ
ラメータのチェックが少なくなるのでミスが減る。URL
的にリソースの管理が分かりやすい。
• Nested Attributes
• 1対多の構造を持つモデルを1画面で一気に登録・更新
することができる。StrongParameterの指定方法が独
特なので注意。子フォームの詳細なエラー表示は苦手。
まとめ
• 繰り返しますが「Nested Resources」と
「Nested Attributes」は対になる仕組みではあ
りません。場合によってはこの2つを組み合わせ
ることも必要です。
まとめ
• https://github.com/kazuhisa/workman
• masterブランチ
• グループの画面のみ
• nested_resourcesブランチ
• Nested Resourcesを使ってユーザー画面を作ったサンプル
• nested_attrブランチ
• Nested Attributesを使ってユーザー画面を作ったサンプル
ご清聴
ありがとうございました

More Related Content

What's hot

ぼっち開発からチーム開発へ(仮)
ぼっち開発からチーム開発へ(仮)ぼっち開発からチーム開発へ(仮)
ぼっち開発からチーム開発へ(仮)
Yuki Maeto
 
いまいまMySQL@OSC2016長岡
いまいまMySQL@OSC2016長岡いまいまMySQL@OSC2016長岡
いまいまMySQL@OSC2016長岡
sakaik
 
Concurrent Programming in JavaScript
Concurrent Programming in JavaScriptConcurrent Programming in JavaScript
Concurrent Programming in JavaScript
yjono Seino
 
Concurrent Programm in JavaScript
Concurrent Programm in JavaScriptConcurrent Programm in JavaScript
Concurrent Programm in JavaScript
yjono Seino
 
17th XBRL 勉強会発表 20110127
17th XBRL 勉強会発表 2011012717th XBRL 勉強会発表 20110127
17th XBRL 勉強会発表 20110127
Shin-Ichiro Yano
 
React+fluxを導入した話
React+fluxを導入した話React+fluxを導入した話
React+fluxを導入した話
Yuki Ishikawa
 
Rubyと電子出版 (TokyuRubyKaigi02)
Rubyと電子出版 (TokyuRubyKaigi02)Rubyと電子出版 (TokyuRubyKaigi02)
Rubyと電子出版 (TokyuRubyKaigi02)masayoshi takahashi
 
aozorahack hackathon #1
aozorahack hackathon #1aozorahack hackathon #1
aozorahack hackathon #1
masayoshi takahashi
 
aozorahackと青空文庫の現状とこれから (OSC 2016 Tokyo/Spring)
aozorahackと青空文庫の現状とこれから (OSC 2016 Tokyo/Spring)aozorahackと青空文庫の現状とこれから (OSC 2016 Tokyo/Spring)
aozorahackと青空文庫の現状とこれから (OSC 2016 Tokyo/Spring)
masayoshi takahashi
 

What's hot (10)

ぼっち開発からチーム開発へ(仮)
ぼっち開発からチーム開発へ(仮)ぼっち開発からチーム開発へ(仮)
ぼっち開発からチーム開発へ(仮)
 
いまいまMySQL@OSC2016長岡
いまいまMySQL@OSC2016長岡いまいまMySQL@OSC2016長岡
いまいまMySQL@OSC2016長岡
 
八王子
八王子八王子
八王子
 
Concurrent Programming in JavaScript
Concurrent Programming in JavaScriptConcurrent Programming in JavaScript
Concurrent Programming in JavaScript
 
Concurrent Programm in JavaScript
Concurrent Programm in JavaScriptConcurrent Programm in JavaScript
Concurrent Programm in JavaScript
 
17th XBRL 勉強会発表 20110127
17th XBRL 勉強会発表 2011012717th XBRL 勉強会発表 20110127
17th XBRL 勉強会発表 20110127
 
React+fluxを導入した話
React+fluxを導入した話React+fluxを導入した話
React+fluxを導入した話
 
Rubyと電子出版 (TokyuRubyKaigi02)
Rubyと電子出版 (TokyuRubyKaigi02)Rubyと電子出版 (TokyuRubyKaigi02)
Rubyと電子出版 (TokyuRubyKaigi02)
 
aozorahack hackathon #1
aozorahack hackathon #1aozorahack hackathon #1
aozorahack hackathon #1
 
aozorahackと青空文庫の現状とこれから (OSC 2016 Tokyo/Spring)
aozorahackと青空文庫の現状とこれから (OSC 2016 Tokyo/Spring)aozorahackと青空文庫の現状とこれから (OSC 2016 Tokyo/Spring)
aozorahackと青空文庫の現状とこれから (OSC 2016 Tokyo/Spring)
 

Similar to Railsらしい 1対多の画面作成

JavaScript 研修
JavaScript 研修JavaScript 研修
JavaScript 研修
Yuki Ishikawa
 
The Essence of Using Ruby on Rails in Corporations
The Essence of Using Ruby on Rails in CorporationsThe Essence of Using Ruby on Rails in Corporations
The Essence of Using Ruby on Rails in CorporationsKoichiro Ohba
 
無償版Visual StudioでいろいろWeb開発
無償版Visual StudioでいろいろWeb開発無償版Visual StudioでいろいろWeb開発
無償版Visual StudioでいろいろWeb開発
Narami Kiyokura
 
地方企業がソーシャルゲーム開発を成功させるための10のポイント
地方企業がソーシャルゲーム開発を成功させるための10のポイント地方企業がソーシャルゲーム開発を成功させるための10のポイント
地方企業がソーシャルゲーム開発を成功させるための10のポイント
Kentaro Matsui
 
WindowsユーザのためのRails環境構築
WindowsユーザのためのRails環境構築WindowsユーザのためのRails環境構築
WindowsユーザのためのRails環境構築
Hirata Tomoko
 
Androidアプリの構築と実践
Androidアプリの構築と実践Androidアプリの構築と実践
Androidアプリの構築と実践
ssuser34abd0
 
20120702勉強会 webアプリ作ってみた
20120702勉強会 webアプリ作ってみた20120702勉強会 webアプリ作ってみた
20120702勉強会 webアプリ作ってみたShugo Numano
 
20100324 勉強会資料(ドメイン駆動)
20100324 勉強会資料(ドメイン駆動)20100324 勉強会資料(ドメイン駆動)
20100324 勉強会資料(ドメイン駆動)Masayuki Kanou
 
Intalio japan special cloud workshop
Intalio japan special cloud workshopIntalio japan special cloud workshop
Intalio japan special cloud workshopDaisuke Sugai
 
QCon2009 Tokyo - Ruby on Railsで変わるエンタープライズ開発の現場
QCon2009 Tokyo - Ruby on Railsで変わるエンタープライズ開発の現場QCon2009 Tokyo - Ruby on Railsで変わるエンタープライズ開発の現場
QCon2009 Tokyo - Ruby on Railsで変わるエンタープライズ開発の現場
Yasuko Ohba
 
リレーショナルデータベースとの上手な付き合い方 long version
リレーショナルデータベースとの上手な付き合い方 long version リレーショナルデータベースとの上手な付き合い方 long version
リレーショナルデータベースとの上手な付き合い方 long version
Mikiya Okuno
 
eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティス
eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティスeZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティス
eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティス
ericsagnes
 
Node.js を選ぶとき 選ばないとき
Node.js を選ぶとき 選ばないときNode.js を選ぶとき 選ばないとき
Node.js を選ぶとき 選ばないとき
Ryunosuke SATO
 
Tech fun rails_workshop
Tech fun rails_workshopTech fun rails_workshop
Tech fun rails_workshop
OMEGA (@equal_001)
 
PHP+MySQLを使ったスケーラブルなソーシャルゲーム開発
PHP+MySQLを使ったスケーラブルなソーシャルゲーム開発PHP+MySQLを使ったスケーラブルなソーシャルゲーム開発
PHP+MySQLを使ったスケーラブルなソーシャルゲーム開発
infinite_loop
 
rails 管理画面作成gem Typus解説
rails 管理画面作成gem Typus解説rails 管理画面作成gem Typus解説
rails 管理画面作成gem Typus解説
baban ba-n
 
オレたちとVisual Studioとの関係を話そう
オレたちとVisual Studioとの関係を話そうオレたちとVisual Studioとの関係を話そう
オレたちとVisual Studioとの関係を話そう
Mitsuhito Ishino
 
マルチサイトの構築
マルチサイトの構築マルチサイトの構築
マルチサイトの構築
Yoshitaka KATO
 
Node js 入門
Node js 入門Node js 入門
Node js 入門
Satoshi Takami
 

Similar to Railsらしい 1対多の画面作成 (20)

JavaScript 研修
JavaScript 研修JavaScript 研修
JavaScript 研修
 
The Essence of Using Ruby on Rails in Corporations
The Essence of Using Ruby on Rails in CorporationsThe Essence of Using Ruby on Rails in Corporations
The Essence of Using Ruby on Rails in Corporations
 
無償版Visual StudioでいろいろWeb開発
無償版Visual StudioでいろいろWeb開発無償版Visual StudioでいろいろWeb開発
無償版Visual StudioでいろいろWeb開発
 
地方企業がソーシャルゲーム開発を成功させるための10のポイント
地方企業がソーシャルゲーム開発を成功させるための10のポイント地方企業がソーシャルゲーム開発を成功させるための10のポイント
地方企業がソーシャルゲーム開発を成功させるための10のポイント
 
WindowsユーザのためのRails環境構築
WindowsユーザのためのRails環境構築WindowsユーザのためのRails環境構築
WindowsユーザのためのRails環境構築
 
Androidアプリの構築と実践
Androidアプリの構築と実践Androidアプリの構築と実践
Androidアプリの構築と実践
 
20120702勉強会 webアプリ作ってみた
20120702勉強会 webアプリ作ってみた20120702勉強会 webアプリ作ってみた
20120702勉強会 webアプリ作ってみた
 
20100324 勉強会資料(ドメイン駆動)
20100324 勉強会資料(ドメイン駆動)20100324 勉強会資料(ドメイン駆動)
20100324 勉強会資料(ドメイン駆動)
 
Intalio japan special cloud workshop
Intalio japan special cloud workshopIntalio japan special cloud workshop
Intalio japan special cloud workshop
 
Java8でRDBMS作ったよ
Java8でRDBMS作ったよJava8でRDBMS作ったよ
Java8でRDBMS作ったよ
 
QCon2009 Tokyo - Ruby on Railsで変わるエンタープライズ開発の現場
QCon2009 Tokyo - Ruby on Railsで変わるエンタープライズ開発の現場QCon2009 Tokyo - Ruby on Railsで変わるエンタープライズ開発の現場
QCon2009 Tokyo - Ruby on Railsで変わるエンタープライズ開発の現場
 
リレーショナルデータベースとの上手な付き合い方 long version
リレーショナルデータベースとの上手な付き合い方 long version リレーショナルデータベースとの上手な付き合い方 long version
リレーショナルデータベースとの上手な付き合い方 long version
 
eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティス
eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティスeZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティス
eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティス
 
Node.js を選ぶとき 選ばないとき
Node.js を選ぶとき 選ばないときNode.js を選ぶとき 選ばないとき
Node.js を選ぶとき 選ばないとき
 
Tech fun rails_workshop
Tech fun rails_workshopTech fun rails_workshop
Tech fun rails_workshop
 
PHP+MySQLを使ったスケーラブルなソーシャルゲーム開発
PHP+MySQLを使ったスケーラブルなソーシャルゲーム開発PHP+MySQLを使ったスケーラブルなソーシャルゲーム開発
PHP+MySQLを使ったスケーラブルなソーシャルゲーム開発
 
rails 管理画面作成gem Typus解説
rails 管理画面作成gem Typus解説rails 管理画面作成gem Typus解説
rails 管理画面作成gem Typus解説
 
オレたちとVisual Studioとの関係を話そう
オレたちとVisual Studioとの関係を話そうオレたちとVisual Studioとの関係を話そう
オレたちとVisual Studioとの関係を話そう
 
マルチサイトの構築
マルチサイトの構築マルチサイトの構築
マルチサイトの構築
 
Node js 入門
Node js 入門Node js 入門
Node js 入門
 

More from Yamamoto Kazuhisa

初心者の皆さんに伝えたいこと
初心者の皆さんに伝えたいこと初心者の皆さんに伝えたいこと
初心者の皆さんに伝えたいこと
Yamamoto Kazuhisa
 
Docker入門
Docker入門Docker入門
Docker入門
Yamamoto Kazuhisa
 
意外と知られていない AWSのメール配信 テクニック
意外と知られていない AWSのメール配信 テクニック意外と知られていない AWSのメール配信 テクニック
意外と知られていない AWSのメール配信 テクニック
Yamamoto Kazuhisa
 
ken_all.gem〜狂った世界にようこそ〜
ken_all.gem〜狂った世界にようこそ〜ken_all.gem〜狂った世界にようこそ〜
ken_all.gem〜狂った世界にようこそ〜
Yamamoto Kazuhisa
 
Jenkinsで行う並列テスト(公開用)
Jenkinsで行う並列テスト(公開用)Jenkinsで行う並列テスト(公開用)
Jenkinsで行う並列テスト(公開用)Yamamoto Kazuhisa
 
Jenkins + awsで並列テスト
Jenkins + awsで並列テストJenkins + awsで並列テスト
Jenkins + awsで並列テスト
Yamamoto Kazuhisa
 
Ruby gemsパッケージの作り方
Ruby gemsパッケージの作り方Ruby gemsパッケージの作り方
Ruby gemsパッケージの作り方
Yamamoto Kazuhisa
 
Railsで春から始めるtdd生活
Railsで春から始めるtdd生活Railsで春から始めるtdd生活
Railsで春から始めるtdd生活
Yamamoto Kazuhisa
 
Iron rubyとsinatraで作るデスクトップアプリ
Iron rubyとsinatraで作るデスクトップアプリIron rubyとsinatraで作るデスクトップアプリ
Iron rubyとsinatraで作るデスクトップアプリYamamoto Kazuhisa
 

More from Yamamoto Kazuhisa (9)

初心者の皆さんに伝えたいこと
初心者の皆さんに伝えたいこと初心者の皆さんに伝えたいこと
初心者の皆さんに伝えたいこと
 
Docker入門
Docker入門Docker入門
Docker入門
 
意外と知られていない AWSのメール配信 テクニック
意外と知られていない AWSのメール配信 テクニック意外と知られていない AWSのメール配信 テクニック
意外と知られていない AWSのメール配信 テクニック
 
ken_all.gem〜狂った世界にようこそ〜
ken_all.gem〜狂った世界にようこそ〜ken_all.gem〜狂った世界にようこそ〜
ken_all.gem〜狂った世界にようこそ〜
 
Jenkinsで行う並列テスト(公開用)
Jenkinsで行う並列テスト(公開用)Jenkinsで行う並列テスト(公開用)
Jenkinsで行う並列テスト(公開用)
 
Jenkins + awsで並列テスト
Jenkins + awsで並列テストJenkins + awsで並列テスト
Jenkins + awsで並列テスト
 
Ruby gemsパッケージの作り方
Ruby gemsパッケージの作り方Ruby gemsパッケージの作り方
Ruby gemsパッケージの作り方
 
Railsで春から始めるtdd生活
Railsで春から始めるtdd生活Railsで春から始めるtdd生活
Railsで春から始めるtdd生活
 
Iron rubyとsinatraで作るデスクトップアプリ
Iron rubyとsinatraで作るデスクトップアプリIron rubyとsinatraで作るデスクトップアプリ
Iron rubyとsinatraで作るデスクトップアプリ
 

Recently uploaded

RaySheetで解決できるシナリオ10選-業務改善に貢献する機能 - RaySheet Documentation
RaySheetで解決できるシナリオ10選-業務改善に貢献する機能 - RaySheet DocumentationRaySheetで解決できるシナリオ10選-業務改善に貢献する機能 - RaySheet Documentation
RaySheetで解決できるシナリオ10選-業務改善に貢献する機能 - RaySheet Documentation
GrapeCity, inc.
 
クラウドネイティブにおけるセキュアなソフトウェア・サプライ・チェーンの考え方とベストプラクティス.pdf
クラウドネイティブにおけるセキュアなソフトウェア・サプライ・チェーンの考え方とベストプラクティス.pdfクラウドネイティブにおけるセキュアなソフトウェア・サプライ・チェーンの考え方とベストプラクティス.pdf
クラウドネイティブにおけるセキュアなソフトウェア・サプライ・チェーンの考え方とベストプラクティス.pdf
TatsuyaHanayama
 
RaySheet Product Description Documentation - 2024.6.19
RaySheet Product Description Documentation - 2024.6.19RaySheet Product Description Documentation - 2024.6.19
RaySheet Product Description Documentation - 2024.6.19
GrapeCity, inc.
 
RayBarcode Product Description Documentation - 2024.6.19
RayBarcode Product Description Documentation - 2024.6.19RayBarcode Product Description Documentation - 2024.6.19
RayBarcode Product Description Documentation - 2024.6.19
GrapeCity, inc.
 
GPT - 振り返りフレームワークKPTをちょっとKAIZENしてちょうど良いフレームワークに。
GPT - 振り返りフレームワークKPTをちょっとKAIZENしてちょうど良いフレームワークに。GPT - 振り返りフレームワークKPTをちょっとKAIZENしてちょうど良いフレームワークに。
GPT - 振り返りフレームワークKPTをちょっとKAIZENしてちょうど良いフレームワークに。
Hibiki Mizuno
 
RayPen Product Description Documentation - 2024.6.19
RayPen Product Description Documentation - 2024.6.19RayPen Product Description Documentation - 2024.6.19
RayPen Product Description Documentation - 2024.6.19
GrapeCity, inc.
 
Bhyve Management Daemon Version 3.0 on FreBSD
Bhyve Management Daemon Version 3.0 on FreBSDBhyve Management Daemon Version 3.0 on FreBSD
Bhyve Management Daemon Version 3.0 on FreBSD
Yuichiro Naito
 
シグネチャで始めるRustプログラミング - Superteam Japan Developer Event
シグネチャで始めるRustプログラミング - Superteam Japan Developer Eventシグネチャで始めるRustプログラミング - Superteam Japan Developer Event
シグネチャで始めるRustプログラミング - Superteam Japan Developer Event
K Kinzal
 
Solanaで始めるRustプログラミング - Superteam Japan Developer Event
Solanaで始めるRustプログラミング - Superteam Japan Developer EventSolanaで始めるRustプログラミング - Superteam Japan Developer Event
Solanaで始めるRustプログラミング - Superteam Japan Developer Event
K Kinzal
 

Recently uploaded (9)

RaySheetで解決できるシナリオ10選-業務改善に貢献する機能 - RaySheet Documentation
RaySheetで解決できるシナリオ10選-業務改善に貢献する機能 - RaySheet DocumentationRaySheetで解決できるシナリオ10選-業務改善に貢献する機能 - RaySheet Documentation
RaySheetで解決できるシナリオ10選-業務改善に貢献する機能 - RaySheet Documentation
 
クラウドネイティブにおけるセキュアなソフトウェア・サプライ・チェーンの考え方とベストプラクティス.pdf
クラウドネイティブにおけるセキュアなソフトウェア・サプライ・チェーンの考え方とベストプラクティス.pdfクラウドネイティブにおけるセキュアなソフトウェア・サプライ・チェーンの考え方とベストプラクティス.pdf
クラウドネイティブにおけるセキュアなソフトウェア・サプライ・チェーンの考え方とベストプラクティス.pdf
 
RaySheet Product Description Documentation - 2024.6.19
RaySheet Product Description Documentation - 2024.6.19RaySheet Product Description Documentation - 2024.6.19
RaySheet Product Description Documentation - 2024.6.19
 
RayBarcode Product Description Documentation - 2024.6.19
RayBarcode Product Description Documentation - 2024.6.19RayBarcode Product Description Documentation - 2024.6.19
RayBarcode Product Description Documentation - 2024.6.19
 
GPT - 振り返りフレームワークKPTをちょっとKAIZENしてちょうど良いフレームワークに。
GPT - 振り返りフレームワークKPTをちょっとKAIZENしてちょうど良いフレームワークに。GPT - 振り返りフレームワークKPTをちょっとKAIZENしてちょうど良いフレームワークに。
GPT - 振り返りフレームワークKPTをちょっとKAIZENしてちょうど良いフレームワークに。
 
RayPen Product Description Documentation - 2024.6.19
RayPen Product Description Documentation - 2024.6.19RayPen Product Description Documentation - 2024.6.19
RayPen Product Description Documentation - 2024.6.19
 
Bhyve Management Daemon Version 3.0 on FreBSD
Bhyve Management Daemon Version 3.0 on FreBSDBhyve Management Daemon Version 3.0 on FreBSD
Bhyve Management Daemon Version 3.0 on FreBSD
 
シグネチャで始めるRustプログラミング - Superteam Japan Developer Event
シグネチャで始めるRustプログラミング - Superteam Japan Developer Eventシグネチャで始めるRustプログラミング - Superteam Japan Developer Event
シグネチャで始めるRustプログラミング - Superteam Japan Developer Event
 
Solanaで始めるRustプログラミング - Superteam Japan Developer Event
Solanaで始めるRustプログラミング - Superteam Japan Developer EventSolanaで始めるRustプログラミング - Superteam Japan Developer Event
Solanaで始めるRustプログラミング - Superteam Japan Developer Event
 

Railsらしい 1対多の画面作成