技術ブログ

(技術系中心)基本自分用備忘録なので、あくまで参考程度でお願いします。

Rails

Rubyの命名規則

クラス、モジュール 原則CamelCaseを使う User UserName Micropost MicropostName ネストした場合 Hoge::User Hoge::UserName Hoge::Micropost Hoge::MicropostName メソッド、変数 原則スネークケースを使う find_user new_micropost 定数 定数は全部大文字…

Scopeが便利

Scopeが便利 カスタム用のクエリを作成する時にはscopeが便利 Class hoge < Application:Record . . . belongs_to :user scope :recent, -> {order(created_at: :desc)} . . . ①hoge = Hoge.recent ②hoge = Hoge.recent.first ③hoge = Hoge.recent.last ①全…

helper_methodの使い方

helper_methodの使い方 Viewでもhelper_methodを利用したい場合はControllerにhelper_methodを利用。 具体例 ApplicationControllerで以下のようにcurrent_userというメソッドを定義することで、全てのコントローラから利用できるようになります。 さらにhel…

モデルの検証(validation)を行われる登録と更新メソッド

モデルの検証(validation)を行われる登録と更新メソッド モデルの検証メソッドにはモデル登録時に検証(validation)を行うメソッドと行わないメソッドがある。 画像参考: 現場で使える Ruby on Rails 5速習実践ガイド 参考書籍 現場で使える Ruby on Rails 5…

tryメソッド

tryメソッド Railsコードの中にtryメソッドを発見。最初はRubyのメソッドと思ったけどRailsが用意しているメソッドらしい。 使用用途 使用用途はいたって簡単でオブジェクトがnilでない場合のみ、そのオブジェクトのメソッドを実行したい!時に使う これを使…

レンダーとリダイレクトの違い

レンダーとリダイレクトの違い Railsのコントローラ層をスムーズに開発するには、レンダーとリダイレクトの区別が欠かせまんせん。 レンダー render 一覧画面や新規登録画面を表示するときにアクションに続けてビューを表示させるときに使う (rednerで呼び出…

helperでカスタマイズしたメソッドを全てのコントローラーから使用する方法

helperでカスタマイズしたメソッドを全てのコントローラーから使用する方法 例えばapp/helpers/session_helper.rbにたくさんのメソッドを書いてそれをどのコントローラでも使えるようにするにはApplicationControllerにincludeしてあげるとどのコントローラ…

フレンドリーフォワーディング

フレンドリーフォワーディング リダイレクト先をユーザーフレンドリーにします。 Ruby on Rails チュートリアル:実例を使って Rails を学ぼう 発生内容 ① ログインしていないユーザーがeditページを開く ② ログインしてくださいと注意勧告される ③ ログイン…

railsで自動作成以外に自分でルート追加する方法

railsで自動作成以外に自分でルート追加する方法 毎回忘れるのでメモ member resources :users do member do get :option end end 以上のようにmemberを使うと以下のようなルートを作ることが出来る GET /users/:id/option collection resources :users do c…

form_for(@user)を使ってフォームを構成すると時にPOSTかPATCHリクエストを送る判断方法

form_for(@user)を使ってフォームを構成すると時にPOSTかPATCHリクエストを送る判断方法 Railsでform_for ヘルパーを使うときにPOSTかPATCHリクエストを判断方法が良く分からずに曖昧な感じでしたが、以下の@user.new_record?がtrueのときにはPOSTを、false…

resourcesをroutes.rbに追加すると。RESTfulなアクションリソースを自動作成してくれる

resourcesをroutes.rbに追加すると。RESTfulなアクションリソースを自動作成してくれる sampleのURLを生成するための多数の名前付きルートと共に、RESTfulなsampleリソースで必要となるすべてのアクションが利用できるようになります (routes.rb) resources …

form_forでインスタンス変数を使うと編集ページがうまく描画される

form_forでインスタンス変数を使うと編集ページがうまく描画される @userインスタンス変数を使うと、編集ページがうまく描画されるようになります (下記図参照)。 "Name"や"Email"の部分を見ると、Railsによって名前やメールアドレスのフィールドに値が自動…

(Rails)特定のルートを指定したい場合

(Rails)特定のルートを指定したい場合 開発していく上でルートが増えてきて検索ルートが中々見つからないことはありませんか? その時に便利なのが、 grepコマンド です。 rails routes だけでは全てのルートが表示される。 /w/hotspot ❯❯❯ rails routes WAR…