基礎試験98点で突破しました♪本来2週間かかるところなので早めにクリアできているようです。
本日はプロトレの内容から。カリキュラムを見てプログラミングノートを作成し、作ったノートのみで簡単なアプリを作れたらひとまずOKとのことでした!ペタッとな!
- アプリケーションの新規作成手順
cd 指定のフォルダへ
bundle config –global build.mysql2 –with-opt-dir=”$(brew –prefix openssl@1.1)”
rails 6.0.0 new アプリ名 -d mysql
cd アプリ名
pwd
rails db:create
dberver 起動 ファイル作られているか確認
rails s ターミナル2個起動
http://localhost:3000/ 繋がっているか確認
rails s 止める - 一覧機能(indexアクション)を実装する手順
/routes.rb
get ‘posts’, to: ‘posts#index’
/ターミナル
rails routes ルーティング確認
rails g controller posts rails g ファイルの種類 生成するファイル名
コントローラーが生成されているか確認
/posts.con
def index
@post = “これはコントローラーで定義したインスタンス変数”
end
app/views/posts/
index.html.erb作成
トップページ
<%= @post %>
http://localhost:3000/posts
rails g model post rails g model モデル名
/db/migrate
t.text :content t.カラム型 :カラム名
rails db:migrate
dberver 起動 ファイル作られているか確認
データを直接入力
rails c
post = Post.new model = Model.new
post.content = “こん” model.text = “追加するデータ”
post.save model.save
exit
dberver 起動 ファイル作られているか確認
/posts_con
@post = Post.find(1)
/index.html.erb
<%= @post.content %> contentないと、どれ取っていいか分からない
http://localhost:3000/posts
/posts_con
@posts = Post.all 複数形に変化、Postの中身全て入れる
/index.html.erb
<%= @posts.content %>
<%= @posts.created_at %>
http://localhost:3000/posts エラー allを一気に取り出せない
/index.html.erb
<% @posts.each do |post| %>
<%= post.content %>
<%= post.created_at %>
http://localhost:3000/posts エラーでない 全てのデータ表示される
/index.html.erb
トップページ
<% @posts.each do |post| %>
投稿日時:<%= post.created_at %> <%= post.content %> <% end %>
/stylesheets
posts.css 作成
.post{
border: 1px solid;
width: 40%;
margin-top: 30px;
}
.post-date{
color: gray;
}
http://localhost:3000/posts - 投稿画面(newアクション)を作成する手順
/routes.rb
get ‘posts/new’,to: ‘posts#new’
rails routes
/posts_con
def new
end
new/html.erb作成 新規投稿ページ <%= form_with url: “/posts”, method: :post, local: true do |form| %> <%= form.text_field :content %> <%= form.submit ‘投稿する’ %> <% end %> http://localhost:3000/posts/new /index.html.erb <%= link_to ‘新規投稿’, ‘/posts/new’ %> - 保存機能(createアクション)を実装する手順
/routes.rb
post ‘posts’,to:’posts#create’
/posts_con
def create
Post.create(content: params[:content])
ポストモデルにクリエイト(カラム名:params[:newから送られたデータ]
end
/create.html.erb作成
投稿が完了しました
<%= link_to ‘トップページに戻る’, ‘/posts’ %>
http://localhost:3000/posts/new
動作確認
明日もプロトレの時間にこの内容を確認しながらプログラム組んでみます。あってるかわからないので、これからまだまだ修正かかる予定ですーv
テックキャンプ9日目
無事↑の取扱説明書で、アプリを組み切ることができました!そして次のプロトレに挑戦!問題見た瞬間絶望でしたが・・・。
なんとか戦えそうだぞ!?すごく力がついてきてる気がします!!!この調子で突き進みます!!
テストコードについて(ざっくりとりまとめ)
Ruby on rails では、RSpecというgemをダウンロードしてテストを行うことができます。
describeとは、テストコードのグループ分けを行うメソッド。
describeに続くdo~endの間に更にメソッドを記入して入れ子構造にすることが可能。
bundle exec rspec spec/models/user_spec.rbとは、テストコードの実行用コマンド。後半の部分は任意のファイル名が入る。結果が緑で表示されれば実験成功です。
valid?とは、バリデーションを実行しエラーがあるかどうかを判断するメソッドです。
エラーがない場合はtrue、ある場合はfalseを返します。この下の行にbinding.pryつけてテストを途中で止めて、errors.full_messegesでエラーメッセージ抽出して次に生かす。考えた人本当に偉いと思いました。