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…

Excon::Error::BadRequest in ●●Controller#●● S3に Carrierwaveで credentials

以前AWSのS3バケットにデータを保存する設定をしました。そこにCarrierwaveで画像を保存したいとおもっていろいろ設定したんです。その設定が間違っていたらしく、タイトルの文言のエラーが出ました。その備忘録。 ●エラー画面 ●前提 ●AWSのS3バケットのSECR…

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…

ターミナル コマンド入力 command not found しかでない

タイトルの通り、ターミナルでlsやらcatやら色々コマンドを打ち込んでるのにすべて読み込んでくれずに「command not found 」しかでないという困っている人に出会った。 環境構築をしているところでPATHを変に上書きしたりして、コマンドが使えなくなったよ…

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/あな…

gem version 違い 動かない

時間がかかったエラーの対処への備忘録 過去に作ったRailsアプリケーションを動かそうとしたら、動かなくなっちゃった!どうして?という人のエラーをみていたのですが、なんかよくわからない。全てのアプリが動かないのではなくて、特定のアプリだけ動かな…

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に適用してい…

正規表現とは

正規表現とは…異なる形式の文字列を統一した形式で表現するための方法である。 例えば… 090(1126)1515 → 09011261515 090-1126-1515 → 09011261515 このように二つの書き方で表された電話番号を統一した書式で表現し直す。これが正規表現である。種類をまと…

非同期通信とは

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

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

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

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

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

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

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

gem install で permission error になった話

gemのインストールをしていたらエラーが出るという人の問題を解決してあげた。 While executing gem ... (Gem::FilePermissionError) You don't have write permissions for the /Library/Ruby/Gems/2.0.0 directory. こんな感じでpermission errorなので権…

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

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

同じ内容を複数選択するショートカット

<div> <p class="same"> 同じだよ </div></div><div> <p class="same"> 同じだよ </div></div><div> <p class="same"> 同じだよ </div></div> このように <div class="same"> 同じだよ </div> という同じ形があって、この部分をまとめて変更したい時。 テキストエディタでは同名部分を連続選択できる機能がある。 「command + D」 これが案外使える。覚えておこう。

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

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…

Railsがインストールできないのは Mojaveのせい

Rails5.2.2.1をインストールしようとしたらエラーが出る。 [追記あり:mysql2のbundle installもできないのもMojaveのせい] MacBook-puro: $ gem install rails --version='5.2.2.1' Building native extensions. This could take a while... ERROR: Error i…

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

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

form_for って難しい

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

ERROR! The server quit without updating PID file 原因は異なる二つのver.のMySQL

DBに接続しようとしたらできない。という人のエラーを解決した。 ERROR! The server quit without updating PID file のエラーがターミナルに出力されてたので、まず mysql.server restart とか sudo mysql.server restart とかやってみるもだめでした。 ●原…