ihatov08 blog

プログラミング初心者だけどRailsとSwiftマスターします

2016-02-01から1ヶ月間の記事一覧

良い椅子とディスプレイは欲しい

良い椅子とディスプレイは欲しい。 それにうどんはいい作戦だなと思った。 uinyan.com

railsでチェックボックスのバリデーションの実装方法(単数と複数の場合)

かなり悩みました。合わせると10時間くらいは悩んで、ググっていたような。PHPキャンプで講師の先生に条件分岐、アルゴリズムについて教えてもらったら(全然関係のないナベアツ、素数判定だが)、チェックボックスの実装についても閃いた。 まずは「規約…

railsのHTTPメソッド

HTTPのメソッド メソッド 機能 アクション GET リソースの要求 POST リソースの送信 HEAD ヘッダー部分だけを要求 PUT リソースの置換 PATCH リソースの一部更新 update DELETE リソースの削除 destroy 操作 Verb create POST read GET Update PATCH Delete …

gitを学ぶ

gitを学ぶのに最適なサイト。 このサイトでとりあえず学びたい。 www.atlassian.com

入れ子のルーティング(memberとcollection)

memberを用いるとusers/:id/◯◯のようなルーティングを生成することができる。 コントローラでidをprams[:id]で受け取ることができるので、showやeditのようなuserひとりひとりに用いるアクションの場合にmemberを用いる。 collecitonを用いるとusers/◯◯のよ…

Railsでいいね!機能の実装方法

GitHub - ihatov08/gatebook 前提としてuserモデルとtweetモデルがあり、アソシエーションをしている。 いいね!機能にはどのuserがどのnoteにいいね!をしているのかという2つの情報が必要になる。 例えば idが1のuser idが5のtweetにいいね!をしたとき、…

別のコントローラをrenderする方法

createアクションで投稿の保存に失敗した場合(バリデーションに失敗)、再度フォームを表示しないといけない。 これまではrender :newでtweets/new.html.erbで表示されていたが、フォームをtweetsフォルダ以外のviewに移した場合、今回はhome/top/html.erbに…

TweetにログインユーザーのIDが自動で入るようにする

formからログインユーザーのIDを入れたり、選択式にすることもできる。 もしくはhidden_fieldとcurrent_user.idを用いて擬似的に自動的にログインユーザーのIDをformで送ることもできるが、下記では違う方法を紹介。 ストロングパラメータではuser_idを受け…

一覧を表示する順番を指定する

indexアクションは初期段階では Tweet.allなどで記述していると思うが、順番を並べ替えたい時の記述方法 @tweets = Tweet.all.order(created_at: :desc) #=>新しい順の投稿一覧 #created_atは作成日時 descは降順 @tweets = Tweet.all.order(created_at: :as…

deviseの使い方

deviseとは簡単にログイン機能が作れるgemパッケージ。 deviseをインストールする準備。 Gemfile source 'https://rubygems.org' gem 'devise', '3.5.1' $ bundle install #deviseをインストール rails g devise:install #deviseを利用可能な状態にする。 ロ…

画像を保存して表示する方法

imageカラムを用意する。 string型でよい。 $ rails g migration add_image_to_users image:string 以下のコードでも可能。 $ rails g migration AddImageToUsers image:string ```` データベースに反映させる。 $ rake db:migrate アプリケーション側で用意…

パーシャルへオブジェクトを渡す方法

'tweets/tweet'で_tweet.html.erbを呼び出すことができる。userフォルダからtweetsフォルダ内のパーシャルを呼び出すにはフォルダ名の指定が必要。 note: noteはパーシャルで用いられている変数。 <% @tweets.each do |tweet| %> <%= render 'tweets/tweet',…

whereメソッドとアソシエーション

userとtweetモデルが存在して、userのshowページでuser個人の情報を取得しつつ、userが投稿したtweetすべてを取得する方法。 whereメソッドを用いる。 @user.idが1の場合、user_idが1のtweetを取得できる。 def show @user = User.find(params[:id]) @twee…

tweetモデルとuserモデルの関連付け アソシエーションの例①

tweetモデルとuserモデルが存在したら、tweetモデルにuser_idカラムを追加する。 $ rails g migration add_user_id_to_tweets user_id:integer 下記でも同じ。 $ rails g migaration AddUserIdToTweets user_id:intger migration行い、データベースに反映さ…

Gitの使い方も同時に覚え無いとダメ

入社試験がこの前終わった。結果は追試。原因分析。Ruby on Railsを学んでいるが、同時にhtml/cssもgitの使い方も学ばなければいけないということ。 html/cssは最終的にはデザイナーに任せることになるかもしれないけれど、モックアップは作成できるように、…

Railsがとりあえず書けるようになったので次に読みたい本リスト

とりあえずProgateをやってrailsが書けるようになってきた。まだ改訂3版基礎 Ruby on Rails (KS IMPRESS KISO SERIES)終わって無いけど次に読みたい本リスト 問題 1. テストが書けない - 読むべき本: Everyday Rails - RSpec による Rails テスト入門 問題 2…

サクセスメッセージの表示方法

redirect_toの第二引数にnoticeを指定することができる。 noticeを用いることで一度だけ表示したいメッセージを簡単に設定することができる。 noticeはrailsで用意されている変数で、@をつけなくてもビューファイルで使うことができる。 viewファイルでは<%=…

エラーメッセージの表示方法

バリデーションに失敗した場合、エラーメッセージが自動的に作られ、@note.errors.full_messagesでその内容を配列として取得できる。 モデルには以下のようにサンプルで記述する。 class Note < ActiveRecord::Base validates :title, presence: true valida…