備忘録

form_with .date_select 保存できない パラメータ

Railsのフォームヘルパーであるform_with であるが、面倒なところがまたあった。 form_withのメソッドで年月日をセレクトボックスで入力できるようにする.date_select というものがある。これ、便利だけれど、パラメータの保存が面倒だったので備忘録。 form…

has_one で, field_for を使う, accepts_nested_attributes_for

railsのヘルパーメソッドであるform_withでDBに情報登録する際に、主たる保存先のテーブル以外のところにレコードを保存したい時に使うのが、fields_forメソッドである。 今回はUserのテーブルに個人情報を登録する際、住所も入力させる。その際、住所はAddr…

has_one で, field_for を使う, accepts_nested_attributes_for

railsのヘルパーメソッドであるform_withでDBに情報登録する際に、主たる保存先のテーブル以外のところにレコードを保存したい時に使うのが、fields_forメソッドである。 今回はUserのテーブルに個人情報を登録する際、住所も入力させる。その際、住所はAddr…

Can't resolve image into URL: undefined method `to_model'

画像表示ができないエラーである。 ●前提 ・carrierwaveで画像を投稿できる機能をつけて、投稿画像を一覧画面で表示しようとしています。 ・seedファイルを使って初期表示用のアイテムをDBに登録済みである。そこで入れた画像データは’いらすとや’の画像のUR…

credentials.yml.enc デプロイ 設定 本番環境

Rails5.2から、以前のsecrets.ymlに変わって新たに導入されるようになった秘密情報の管理ファイルであるcredentials.ymlの使い方をまとめる。 <やること> ●AWSのS3バケットのSECRET_ACCESS_KEYをcredentials.ymlでアクセス・管理できるようにする ●そのSEC…

rails ルーティング (.:format)  とは 何

rails routes のコマンドをターミナルで入力すると、Railsで作られているルーティングの一覧が表示されます。 $ rake routes Prefix Verb URI Pattern Controller#Action tweets GET /tweets(.:format) tweets#index POST /tweets(.:format) tweets#create n…

git-secrets Argument list too long コミット できない

新しいアプリを立ち上げようとrails newした。そして作ったアプリのレポジトリをGit hubにあげようとしたらエラーが出た。 $ git commit -m "first commit" $ /usr/local/bin/git-secrets: line 109: /usr/local/Cellar/git/2.19.0_1/libexec/git-core/git: …

ruby rbenv global バージョンが変わらない

Rubyのバージョン管理をする機能であるrbenvですが、ローカル環境のバージョン変更をしようとして $ rbenv global 2.5.1 $ ruby -v ってやったらバージョンが切り替わらない。悲しみ。 調べてみると $ rbenv version system 2.5.1* 2.6.3(set by /Users/あな…

puts でまとめて出力しよう

Rubyの出力メソッドのひとつ”puts” よく見ます。 複数の値を出力する時、putsを複数行にわたって書いていませんか?私はそうでした。 array = ["a","b","c"] puts array puts "\n" puts 1+1 => a b c => => 2 もうそんなことはやめにしましょう。 array = ["…

配列とは [ ]いらないのかもしれない

Rubyの配列の概念を疑うようなことがあったので備忘録 普通の配列の記述は array = [ "a", "b", "c" ] のように書きますよね。 ところがです。この大括弧で囲まなくても配列として認識されるみたいなんです。 array = "hoge", "gefu", "mofu" puts array[1] …

coffeeファイルに気をつけろ

javascriptのファイルが読み込まれない!? 延々と悩まされました。個人作成のものだったので1ヶ月だらだらと悩み続け、問題を先送りにし、解決しないままだらだらと過ごしました。 Railsで画像投稿機能をつけようと思って。それにJavascriptで複数枚の画像…

スワップファイルシステム

アプリを作って本番環境にデプロイしながら制作をしていたら、ある日デプロイができなくなっていた。エラーコードを見ても初めて見るものばかり。しかし、そこには日本語で「メモリ不足」と書かれている箇所があった。 このわずかな手がかりを基に「メモリ」…

CSSとSassの違い

●CSS…Cascading Style Sheet。Cascadeは滝。滝のように上から順に読み込んでスタイルプロパティを適用していくってことかな。 Require_Treeで同一ディレクトリ内を参照している。アセットパイプラインを使ってCSSファイルを一つにまとめて、HTMLに適用してい…

非同期通信とは

まず、同期通信とは全てのHTML・CSSを読み込んでページを更新する処理のことを言う。だから時間もメモリもかかる。 対して、非同期通信とは全て更新するのではなく、HTMLの一部分のみをJavaScriptで抽出し、変更をサーバーに送って、返ってきたHTMLをJavaScr…

Webサーバとアプリケーションサーバーの違い

本番環境のサーバーは二つに分かれる。静的なレスポンスを担当するWebサーバーと動的なレスポンスを担当するアプリケーションサーバーである。 ●Webサーバー ユーザーから来るリクエストには、演算処理が伴わない静的な処理がある。例えば、自己紹介ページの…

問 . テストはなぜ書くのか説明せよ

<テスト> プログラムが意図した動きになるか確認するために作るもの。事前にバグがないか確かめることができる <メリット> ●仕様漏れを防ぐ(テストで動作の洗い出しをする) ●リファクタリングしやすい(テストを書いておけば、リファクタリングして挙…

DB設計の正規化 メリットとデメリット

DBを作成する際には、データの関連性や重複保存などで問題が起きて後から構成のやり直しにならないよう、事前にきちんと設計する必要がある。そこで出てくるのが「正規化」の考え。これをきちんと自分の知識にするためにまとめよう。 ●なぜ正規化が必要か 「…

'シングルクオーテーション' VS "ダブルクオーテーション"

Rubyの文字列を作るときのおはなし。みなさんはシングルとダブルどちらのクオーテーションを使っているでしょうか。 私もよくわからなくなるので、ここいらでしっかり意味合いを考えて使い分けできるようになっておこうと思うます。 まずそれぞれの仕様の違…

破壊的なメソッド! 真偽値なメソッド?

Rubyのメソッドに「!」や「?」がつくメソッドがある。愉快だなって思っていたけれど、ちゃんときちんとしっかり意味があるので、まとめておく。 ●破壊的メソッド(!) 大元のオブジェクトの値を変更してしまう。メソッドは変数とかに一時的に演算処理を施…

ruby のバージョンを変えたら bundle install できなくなった

ruby2.3.1を使っていたので2.5.1にしました。それから開発中のディレクトリでbundle installをしたら、 「 rbenv: rails: command not found The `bundle install' command exists in these Ruby versions: 2.3.1 」 と言われてしまいました。 「ウチじゃ"bu…

migrationファイル --NO FILE-- を解決する

RailsでDBに変更を加える際に、マイグレーションファイルを作ってカラムの追加なりをする。 しかし、マイグレーションファイルの作成とか編集に失敗したからと言って、手動でファイルを削除すればそれが反映されるわけではない。きちんとターミナルでコマン…

form_for って難しい

form_forはRailsの入力フォームを作るときにお世話になるアイツ。 なんか自動で色々やってくれるから簡単にDBに保存できるようになるんだけれど、その自動な部分がよくわかってなくて説明を求められた時に困った。そして間違ったことを言ってしまったので、…

鳴かぬなら killしてしまおう rails s

rails s が途中でフリーズしてうんともすんとも言わなくなった。これはまさに鳴かないホトトギスも同然! 信長「鳴かぬなら killしてしまえ rails s」 殿の命令が下ったので、さっそくやっていきたいと思います。 ●PIDを調べる rails s が動いているProcess …

rbenvのPATHがおかしくてターミナルが…

ターミナルにこのようなエラー文が表示される export PATH="/Users/xxxx/.rbenv/shims:${PATH}" export PATH="$HOME/.rbenv/bin:$PATH" source '/usr/local/Cellar/rbenv/1.1.1/libexec/../completions/rbenv.bash' command rbenv rehash 2>/dev/null rbenv(…

.to_i メソッドは0に帰す

Rubyのプログラムを作っていて、gets.to_i を使ってみて見つけたこと。 while true do puts "[0]レビューを書く" puts "[1]レビューを読む" puts "[2]アプリを終了する" input = gets.to_i if input == 0 then posts = post_review(posts) elsif input == 1 …

入れ子構造なハッシュ

ハッシュが複層的に入れ子構造になっていると嫌な感じである。 例えば user_data = [ { user: { profile: { name: 'Taro' } } }, { user: { profile: { name: 'Jiro' } } }, { user: { profile: { name: 'Saburo' } } } ] 配列の中にuserキーのハッシュがあ…

テキストエディタのタブの入れ替えウザい

テキストエディタを使っていてモヤモヤする現象のひとつ。 「新たにファイル開いたら、さっきまで見てたタブのファイルと入れ替わった。さっきのやつと見比べたかったのに!」 これ他のエディタでもなるんですが、「PreViewモード」というやつで、むやみにタ…

Symbol型とは

Rubyのオブジェクトにシンボル型オブジェクトがある。「:」をつけるやつだ。 これがキー名の指定とかでよく使う。このシンボル型とは何かを自分のものとするためにまとめる。 オブジェクトには型がある。文字列オブジェクトはString型。数字オブジェクトはI…

ゲッター・セッター のself

Rubyでメソッド定義していて、self.がつくときがあります。テキトーにやり過ごしていたので、この前「これなんですか?」と質問されてごにょごにょしてしまった。なので調べて備忘録。 self.はクラスメソッドにもつくのですが、今回はそれではなく、セッター…

VScode のコメントアウト(erb)改造したい

最近SublimeTextからVScodeにテキストエディタを変えようとしています。 私はRubyとRailsを主に使っているのですが、.erbファイルをVScodeで書いているときに、コメントアウトが使いづらい。 というのも、erbのコメントアウト・ショートカットキーでは<%# ~ …