Rails

ログを読んでみる [Rails]

自分はプログラミングを学び始めたばかりの頃、ターミナルに出力されるログを読むことに対して、苦手意識がありました。読んだ方が良いと聞いても、英語ばかりだったので、極力避けておりました。しかし、ログを読むようになってから、エラー解決への苦手意…

parametersについて

パラメーターとは ユーザーからの情報をサーバー側へ伝えるために格納される箱のようなものです。 ハッシュのように、キーとバリューによって値を管理しています。 下の画像はターミナルのログに出ているパラメーターのスクショです。 上から順に、 ①product…

renderメソッドについて[Rails]

renderメソッドの使い方について曖昧だったので調べてまとめてみました。 renderメソッドとは? renderメソッドとはレスポンスの出力をしてくれるメソッドです。renderメソッドを使うことで、ユーザーへのレスポンスとして送信すべき内容を指定することがで…

ポリモーフィック関連2 (コールバックで関連テーブルへのレコード保存の設定とその時吐かれるSQL)

profyでは、ActiveRecordコールバックを利用して、questions、answersテーブルのレコードが作られたら、ポリモーフィック関連先のテーブルであるfeed_contentsテーブルにもレコードが保存されるようにしています。ここの仕組みが難しいと感じたので調べて記…

プロセス切りたい時

cloud9などのエディタでは、railsのサーバー動かしているターミナルをサーバー落とさずに切ってしまうとプロセスが残ってしまう。 すると、新しく立ち上げたターミナルで rails s ができない。。。 その際、コマンドでプロセス特定したり、プロセス一覧から…

再・ポリモーフィック関連について

ポリモーフィック関連とは ポリモーフィック関連とは、ある1つのカラムが複数のテーブルを参照しているようなパターンの関連を表したものです。 同じようなカラムを持っているテーブルが複数ある場合、それらを1つのテーブルで管理してしまうことができま…

Active Storage を試してみた

railsの5.2.0以上から、Active Storage という、モデルオブジェクトにファイルの添付を容易に実現できる機能が使えるようになっています。 それだけでなく、クラウドストレージサービスへのアップロードも容易に行えます。 試してみたところ、とても簡単でし…

gemのバージョン指定法(>=,~>,など)について

rails アプリケーションのgemfile内でのバージョン指定の方法についてです。 以下のように、gemのバージョンが指定されております。 gem 'rails', '~> 5.1.6'gem 'mysql2', '>= 0.3.18', '< 0.6.0'gem 'puma', '~> 3.7'gem 'sass-rails', '~> 5.0'gem 'uglif…

MacOSMojaveにアップデートしてbundle installしてもmysqlだけ入らなかったエラーの解決法(Rails5.2.1・Ruby2.5.1)

先日MacOSをMojave&Railsを5.2.1&Rubyを2.5.1にアップデートしました。 そしたらmysqlがbundle installできないエラーに見舞われました。 結構苦戦したので同じエラーが出た人のためになればと思い記事にしました。 エラー内容 rails new をして、bundle in…

jQueryのajax()について

ajaxとは? AsynchronousJAvascriptXmlの頭文字。 非同期のjavascriptによる(XMLを用いた)通信。 もう少し具体的にいうと、javascriptという言語で記述したプログラムによって、通常の通信と同期せずに(非同期に)、データの通信をする事。 昔はXMLという形式…

後から追加された要素へのイベント設定

後から追加された要素へ普通にfunction設定しても動かない JavaScriptによって後から追加された要素要素に対して、 $(セレクタ).on('click', function( ) { 処理 } ) としても動かない。 これは、ビューのローディング時には、その要素が存在しなかったため…

非同期通信によるメッセージ送信

railsにおける非同期通信によるメッセージ送信の大まかな流れ jsファイルに、フォームが送信されたらイベントが発火するようかく。 イベントが発火した時にAjaxを使い、createアクションが動くようにする。 コントローラーでHTMLとjsonの処理を分ける。 jbui…

(.:format) について

以前から、resouces でルーティング書いた際に生成される、(.:format) が何物なのか、よくわかっていませんでした。 以下のような、rake routes コマンド打つと出てくるやつです。 Prefix Verb URI Pattern Controller#Action root GET / todos#index todos …

GET以外のHTTPメソッドが効かないとき

今日、GET以外のHTTPメソッドが効かなくなってしまうエラーに遭遇しました。 具体的には、ビューに <%= link_to "ログアウト", destroy_user_session_path, method: :delete%> と書いてログアウトボタンを作ってあったのですが、ログアウトボタンを押すと以…

テストコードを書く意義

今までテストコードを書く意味があまり理解できておりませんでした。 本番環境にデプロイした後問題を出さないために大切、と言われているものの、 「それだったら開発環境で実際に動かしてチェックすればいいじゃん」という思いがあり、今ひとつ納得できて…

carrierwaveで画像アップロード

carrierwaveとは? 画像をアップロードするためのgem。 carrierwave使うための準備 gemファイルに以下のように追記し、bundle install。 gem 'carrierwave' ターミナルで、rails g uploader imageコマンド実行。すると、以下のファイルが生成される。 app/up…

HAML

●Hamlとは? Hamlとは、railsにおけるHTML用のテンプレートエンジン。erbの代替品。 「マークアップは美しくあるべき」という原則に基づいて開発された。 Hamlを使うとよりViewファイルを綺麗に・読みやすく・生産的に作成することができる。 拡張子は、〜.ht…

N+1問題

N+1問題についてどういう時にどこで発生してしまうのか、includeメソッドを使うと何故解決できるのか今ひとつピンときていなかったので調べました。 N+1問題とは? レコードの数+1回SQLが発行されてしまう問題。 いつどこで起きるか? N+1問題は2つのモデ…

ポリモーフィック関連

ポリモーフィック関連とは ポリモーフィック関連とは、ある1つのカラムが複数のテーブルを参照しているようなパターンの関連を表したもの。同じようなカラムを持っているテーブルが複数ある場合、それらを1つのテーブルで管理してしまうことができる。複数…

多対多のアソシエーションについて

進捗報告 多対多の関係について復習しました。 理解した気になっていて理解しきれていないことがあったため、改めて知識の整理を行いました。 ■理解したもの 多対多の関係 多対多とは 多対多とは、データベースのテーブル同士の関係の1つ。 (他に1対1、1…

Action Mailer

進捗報告 今まで日記風に書いてしまっておりましたが、これからは学んだことも書いていこうと思います! (今日は内容薄いです) ■理解したもの Action Mailerについて ●Action Mailerとは Action Mailerとは、Railsにおけるメール送信を可能にしてくれる機能…