ochiait / 1705circle_sinatra Goto Github PK
View Code? Open in Web Editor NEWWEBプログラミング個別トレーニング
WEBプログラミング個別トレーニング
Active Recordの確認と調査してものを作る勘所の確認。
#6 の残りのUpdateとDelete機能を作りましょう。
SQLを使ったデータの操作の理解の確認
MySQLを使って
をし、さらに下記のデータ操作をして見ましょう。
成果物としては
スクショはここに貼っていただくかDrag&DropしてSlackへ。
ダンプファイルはSinatraのルートディレクトリ( app.rb
があるディレクトリ )かSlackにDrag&Dropで送ってください。
元々予定していた3週間の確認項目ですが今の時点で既に全てDoneということで(相当スムーズでしたね 笑)
次に7月末を予定していた新サービスの作成に入りたいと思います。
rails new
するところまで作成しましょう。作成したものはPushしてください。Ruby : 最新 2.4.1だと思います( https://www.ruby-lang.org/ja/downloads/ )
Railsの環境: 最新
DB: PostgreSQL
テスト: Rspec
Rubyの管理: Rbenv
Bundler を使ったGemのダウンロード先: vendor/bundle (できれば、わからなければGemのダウンロード先は気にせず作成して良いです。)
HTTPメソッドのPOSTとPUTの使い分け
http://blog.ruedap.com/2011/03/24/http-method-post-put
こちら正解になります。
実はもうひとつ別の側面から見た正解があります。
検索してみましょう。
Webサービスを作る上での最低限のセキュリティ対策をおさえること
Webサービスを作る上で
セキュリティの大きなテーマには下記の3つが上げられます。
これらをWebでざっくり調べて見ましょう。
今度はSinatra側からSQLを操作してみましょう。
Active Recordの確認と調査してものを作る勘所の確認。
bundler
を導入しましょう。sqlite
を使いましょう(Gemだと sqlite3
)。Railsでは更新時にHTTPのPATCHメソッドを使っています。
PUT と PATCHの違いを調べてみましょう。
なぜRailsではPATCH を使うのかも調べてみましょう。
最後にやってみましょう。
#3 で
Formで「送信ボタン」を押した時の「クライアント とサーバー間の(通信を含めた)動き」を図にしてもらいました。
今回はリダイレクトが含まれた時にどのような図になるか図示してみましょう。
ちょうど下記のコード内で、
https://github.com/ochiait/1705circle_sinatra/blob/master/app.rb
post '/new' do
Message.create({:content => params[:content]})
redirect '/'
end
としているので、インデックス画面からFormボタンを押した時の一連の流れをリダイレクトも含めて図を書いてみましょう。
プログラミングの基礎ロジックの確認
以下の課題をRubyを使って解いてください。
できたファイルはSinatraのルートディレクトリに置いてPUSHしてください。
Rubyのバージョン管理をRbenvでやってみましょう。
Rbenvの調査から初めてください。
すでにRbenvで管理されている場合はこのIssueはやらなくてOKです。
#2 のFormで「送信ボタン」を押した時の
「クライアント とサーバー間の(通信を含めた)動き」
を「図」としてイメージできるようになることです。
オフラインで理解を確認するのが難しいので対面で理解を確認します。
ホワイトボードにイメージしている図を書いてもらうかもしれません。
POST で更新しているところをPUTにする。
Sinatraを使って作成します。
form.erb
を作成し、form.erb
から送信された値を画面に表示してみましょう。
終わったらこのリポジトリにPush&メンションしてください。
result.erb
を新たに作成して表示。または新たにファイルは作成せず form.erb
に値を表示する など)form.erb
を作成し、form.erb
から送信された値を画面に表示」できればOKです(あんまり難しく考えずにやりましょう〜)。【Rails findとfind_byの違い】
・findメソッド⇒引数に取るのはid(属性は取らない)
・find_byメソッド⇒引数に取るのは属性(idは取らない)
http://udemy.benesse.co.jp/development/rails-find.html
実はもうひとつ違いがあります。
find(1) と find_by(id: 1) の違いに着目してみましょう。
Gitを使ったチーム開発手法には
Git-flow
と GitHub Flow
が有名です。
今回のトレーニングでも Pull Request
などの操作をしてもらうことになるので、手が空いたときに調べてみましょう。
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.