Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Rails初心者がSPAアプリを作ってみた話
Search
Kouichi(19)
July 20, 2019
Technology
240
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Rails初心者がSPAアプリを作ってみた話
Kouichi(19)
July 20, 2019
More Decks by Kouichi(19)
See All by Kouichi(19)
農業AIアイディアソンに参加してきた
koty
0
640
Google Home アプリを作った話
koty
0
72
Other Decks in Technology
See All in Technology
『止めない』を設計する — 制約の中で、事業の根幹を支える判断
hiroyaterui
0
210
深夜のクラウド懺悔室 1:29:300 or 1:0:0
kazzpapa3
0
190
20260906 「AWS運用入門」著者が教える、運用業務への生成AI活用入門
masaruogura
0
240
Bet AI Day 2026丨AIによって本質に戻るシステムリスク管理
layerx
PRO
0
1.2k
Microsoft 365 Copilot chat -tekoälypalvelun tietosuojaongelmat
hponka
0
480
Bet AI Day 2026丨バクラク Autopilot、業務システムの再設計
layerx
PRO
2
1.6k
2026/09/10 Spring_Bootから_Jakarta_EE_MicroProfileへの移行
megascus
0
160
AI-DLCって実際どう? 〜聞きたいこと全部聞いてみる〜
news_it_enj
0
240
Genie Code ワークショップ 応用編 / Genie-Code-Workshop-advanced
databricksjapan
PRO
0
360
Lakebase ワークショップ / Lakebase-workshop
databricksjapan
PRO
0
110
Beyond the Hype: Practical AI for Your Oracle Database with MCP
thatjeffsmith
1
270
生成AIのテナント制御とシャドーMCP対策 | AIを"止めずに"、情報を守る
yukun
0
120
Featured
See All Featured
Un-Boring Meetings
codingconduct
0
410
So, you think you're a good person
axbom
PRO
2
2.1k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
410
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.6k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
580
Documentation Writing (for coders)
carmenintech
77
5.5k
Everyday Curiosity
cassininazir
0
310
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.6k
Automating Front-end Workflow
addyosmani
1369
210k
Transcript
Rails初心者がSPAアプリを作っ てみた話 長野Rubyの会 #2 2019.7.20 於 GEEKLAB.NAGANO
自己紹介 • にしざわこういち • プログラマー • @koty • 元ギークラ某長野 管理人見習い
• 最近転職しました
プログラミング言語歴 VisualBasic.NET ・・・10年 C# ・・・10年 Java ・・・3年 Python ・・・4年 TypeScript
・・・1年 Ruby ・・・1ヶ月
None
前回発表内容
前回発表内容
今日の発表内容 勉強がてら作ってみているアプリの話 https://glide-well.b-sw.co/#/workouts/ 発表することで教えてもらうスタイル
アプリでできること • 水泳の練習メニューの記録 • 練習内容のslackへの投稿 ◦ 現状は、整形したメッセージをクリップボードに入れるだけ • 俺得アプリ
SPAで作った • このご時世、サーバーサイドのWebフレームワークのみでシステムを作れること はまずない • 特にFormはSPAで作るほうが楽。配列の扱いとか • 認証を通せるようにしたら自分で使う予定
システム構成 CloudFrontでルーティング ブラウザ CloudFront heroku S3 index.html /api/* Rails vue.js
https://github.com/koty/glide-well-front https://github.com/koty/glide-well-api Railsだと何も考えずに herokuにpushするだけで動く。すご い。。。
webpacker • webpackをrailsで包んだものらしい • 最初使いかけたが挫折 • frontとapiを分けることにした
front - api でアプリを分ける長所 • webpackerを覚える必要がない • vue.jsのノウハウをそのまま使える • アプリケーションサーバーが静的ファイルを扱わなくて良い
◦ アプリケーションサーバーの負荷がちょっと減る
front - api でアプリを分ける短所 • ソース管理が煩雑 • コミットがまとまらない • ローカルでのデバッグが面倒
ActiveModelSerializers モデルのオブジェクトをJSONにしてくれるgem ネストしたJSONをpostして更新するきれいな方法がよく分からなかった w = params.permit(:id, :date, :kind, :impression) if
@workout.update(w) update_details(@workout.id) def update_details(workout_id) WorkoutDetail.where(workout_id: workout_id).delete_all p = params.permit(:id, :date, :kind, :impression, workout_details: [:id, :menu_kind, :times, :distance, details = p[:workout_details] details.each do |detail| rec = WorkoutDetail.new(detail) rec.workout_id = workout_id rec.save end
おしまい Railsを教えられるようにがんばります