おぴよの気まぐれ日記

おぴよの気まぐれ日記

岡山やプログラミング、ファッションのこと、子育てや人生、生き方についての備忘録。

プログラミング

【Rails】Strong Parametersで`param is missing...`エラーになる

こんちには。opiyoです。 ActionController::ParameterMissing in ImagesController#create param is missing or the value is empty: image def image_paprams params.require(:image).permit(:name, :picture) end end こんな感じでエラーになるのだが、pa…

Docker For MacでPostgreSQL9.5系の環境を作ってみた!

こんばんは。opiyoです。 brewでインストールするとなんだかPostgreSQL9.6系がインストールされてしまうのだけど、本番環境と同じバージョンをローカルに使いたくてウズウズしていたのだが... Docker使えば良いじゃんってアドバイス貰ったので教えてもらった…

【Rails】ファイルのフルパス、ファイル名を取得する

過去データとかでファイルを一括で読み込みたい場合で使える技です。 > files = Dir.glob("/Users/taku/rails/gist/test/*.xls") => ["/Users/taku/rails/gist/test/1.xls", "/Users/taku/rails/gist/test/2.xls", "/Users/taku/rails/gist/test/3.xls", "/U…

【Ruby】配列の中身が重複しているかをチェックする方法(select、find)

csvのデータを取り込み別のcsvへ吐き出す処理をしていたのですが、値が重複していることに気がつきました。 こんな感じ。 data = [] inport = CSV.read("./inport.csv") inport.each do |c| data << c end CSV.open("./export.csv", "w") do |export| data.e…

【bootstrap3】ナビゲーションバー(Navbar)で起きたレイアウト崩れと右寄せへの対応方法

こんばんは。opiyoです。 結論としては勝手な解釈をして余計なことしてた!に尽きるのだけど、同じようなハマり方すると時間もったい無いので共有です。 <header> <nav class="navbar navbar-inverse"> <div class="container-fluid"> <div class="navbar-header"> <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbarEexample1"> </button></div></div></nav></header>

【Rails】XX件以上登録できないようにする独自バリデーションメソッドを設定する方法

こんばんは。opiyoです。 Railsアプリで「XX以上は登録できない!」というバリデーションを設定したかったので、やり方を調べてみました。 やりたいこと Keywordというテーブルにデータを登録する処理で、5つまでしか登録できないようにバリデーションを設定…

【Bootstrap】navbarの背景色、文字色の悩みはこれ一発で解決だわー

何か作る時bootstrapにお世話になることあると思うのですが、cssいじっただけだと何故か上手くいかない。 例えば今回のnavbarですね。 ナビゲーションメニューがかっこよく決まらないとモチベーションが全く上がらないので、いろいろ探していたらあったわー…

【Ruby on Rails】月の最初の日、最終日はどうやって取得する?

画面から入力された日付の月が何日までなのか取得する方法が分からなかったので調べてみました。 月の最終日 irb> Date NameError: uninitialized constant Date Did you mean? Data from (irb):9 from /Users/taku/.rbenv/versions/2.3.3/bin/irb:11:in `<main>' </main>…

【Rails】created_atとupdated_atへデータを登録する方法

過去データの取り込みで直接DBにデータを入れる際にcreated_atとupdated_atにはどうやって値をセットすれば良いのか分からなかったから調べてみた。 結論としてはTimeWithZoneクラスが使われているからTime.zone.nowすれば良いっぽい。 > Shop.first.created…

【Rails環境構築】bundle installでエラーになる時の対処法!

こんにちは。opiyoです。 昨日まで普通に動いていたのに 教科書、本と通りに設定しているはずなのに 何もしてないのに動かないぞー って経験無いでしょうか? 僕も昨日新しくMacが手に入ったのでRails環境をローカルに構築して今作っているRailsアプリを動か…

初心者でも30分で出来た!MacにRails開発環境を作ってみた

こんばんは。opiyoです。 プログラマの勉強をしていて最初につまずくポイントは環境構築じゃないでしょうか? 今はCloud9とかWeb上で勉強できるサイトなどが当たり前になってきているので、作るきっかけは無いかもしれないですがエンジニアとして働いていく…

【Ruby on Rails】スクレイピングで簡単にmeta情報を取得するgem metainspector

こんばんわ。エンジニアに夢を描くopiyoです。 最近はずっとスクレイピングについて触れることが多いのですが、こんな経験ないですか? ブログ書く時とかurl貼り付けるだけで引用文が作成されるけど、あれどうやってんだ? まさにこういう奴↓↓ opiyotan.hate…

【Rails】NokogiriじゃなくてMechanize gemで簡単スクレイピング!

先日Nokogiriを使ったWebスクレイピング方法を紹介しましたが、もっと簡単に出来るgemを見つけたのでご紹介。 opiyotan.hatenablog.com その名はMechanize 利用する準備 gemのインストール gem 'mechanize' $ bundle install スクレイピング先のサイト情報を…

【Ruby】Nokogiriを使って「はてなブログ」をスクレイピングする!

こんばんは。エンジニアになれるか不安なopiyoです。 今日はWebサイトの情報を取得することが出来る、Webスクレイピングという技術をRubyでやってみます! Webスクレイピングとは Webサイトの情報を取得する技術ってイメージですが、wikipediaでちゃんと調べ…

【Ruby on Rails】決まった時間に自動で処理してくれる`whenever`の使い方!

こんばんは。早くエンジニアになりたいopiyoです。 以前rssを取得する方法について、まとめて見たのですが今日はそれの発展させたいと思います。 opiyotan.hatenablog.com 時代は変わる。そして情報も常に変わる。 だから、rss情報も常に最新の情報を自動で…

【Bootstrap】ナビゲーションメニューをセンタリングして均等化する方法!

こんばんは。opiyoです。 よくあるナビゲーションメニューですが、センタリングされてないとダサいですよね。 bootstrapのnavのサンプルを、そのままコピペして試してみたのですが センタリングされない 文字数に応じた領域になってしまいかっちょ悪い って…

【Ruby on Rails】Rakeタスクを使えば様々な処理が自動化出来る?(初心者向け)

今日は様々な場面で活躍するrakeタスクの作り方と実行方法をまとめてみます。 Rakeとは そもそもRakeですが、Rubyで書かれたコードをタスクとして作成しておき必要に応じて呼び出し実行する事が出来る機能です。 rakeタスクを利用する場面としては、こんなの…

【Ruby】rssを取得して簡単にまとめサイトが作っちゃおう!

こんばんは。早くエンジニアになりたいopiyoです。 最近は会社で全くコードを書くことが出来ず、焦りまくっていう日々を歩んでいるのですが自分で少しでもコードを書く時間を作ろうと思ってRailsアプリを作っています。 その中でトレンド情報を取得して表示…

【PostgreSQL】Dockerで作ったDBにcsvファイルを参照したcopyコマンドを実行するには?(\copy)

コンテナチェック $ docker ps コンテナログイン $ docker exec -it NAME /bin/bash コンテナへファイルをコピー $ docker cp ~/hoge.csv NAME:/tmp/ PostgreSQLにログイン $ psql hoge -p5432 copyコマンドのファイルパスをコンテナ側に合わせ実行 COPY sho…

【PostgreSQL】テーブルをコピーしたらindexや制約がコピーされないぞ?

過去データの取り込み作業でテーブルにデータを流し込む作業をしているのだけど、念のためのバックアップを作って何かあれば戻せるように準備していたのだが、indexや制約がコピーされてないことに気づき調査開始。 単純にコピー作って戻す方法(ダメな方法…

【Ruby on Rails】ActiveRecordを使ってランダムなデータを指定した数だけ取得する方法

データの更新作業などで更新結果を確認したい場合に、対象データが多い場合は、全部のデータ見るのは大変なので何件かデータを取得してチェックするなんて場面があるかなと思います。 そんな時にランダムなデータを取得して結果の確認が出来れば便利ですよね…

【Heroku】DBを1から作り直したい時にやること(rails db:reset)

ローカルだと一発で出来るdb:resetがherokuだとできないだと $ rails db:reset $ rails db:seed $ heroku run rails db:reset rails aborted! ActiveRecord::ProtectedEnvironmentError: You are attempting to run a destructive action against your 'prod…

【Ruby】文字列をDate(日付)に変換する時は桁数を意識しないと違う日付になる

文字列が意図しない日付になる? 売上などのデータでcsvファイルを連携して取り込むってのはよくある話だと思うのですが、単純に文字列結合して変換すると違った日付になったりエラーになったりするので気をつける必要がある。 > require 'date' => true >Da…

【Ruby on Rails】`rails db:reset`だと変更/追加したmigrationファイルが反映されない!

rails db:reset テーブル削除 → schema.rbの情報を元に作り直す rails db:migrate:reset テーブル削除 → 作成 → db:migrateが実行される つまり、migrationファイルを作成した後にそのファイルを修正した場合はdb:resetしても反映されない! 調べてみたら、…

CentOS6で新しいRubyのバージョンが無い時どうすればいいの?

gitを使ってrbenvをインストールしている。 Rubyのバージョンを見てみると2.3.3までしかインストールされてない状況。 $ cd ~/.rbenv $ git pull origin master $ rbenv install --list 2.3.3 git pullすればいけるんじゃ無いかと思ったけど、ダメぽ。 で色…

プログラミング初心者でも出来た!ビットコイン自動売買システムをRubyで作る

こんにちは。opiyoです。 今日は私が入会している人生逃げ切りサロンのメンバーである迫 佑樹さんが Rubyで作る! ビットコイン自動売買システム の作り方を解説した動画について紹介させてもらいます。 この動画の最大の魅力はプログラミング経験が全くない…

Ruby on Rails チュートリアル4章の前半まとめてみた

こんちには、opiyoです。 人生の生き残りをかけて始めた「Railsブートキャンプ」ですが、今日はRailsチュートリアル第4章をやっていこうと思います。 第4章は「Ruby」のお勉強です。早速やってみましょう! あまりにもボリューミーなので、2回に分けます。こ…

Ruby on Railsアプリケーションを5分でHerokuにデプロイする

こんちにわ、opiyoです。 今日は、Railsチュートリアルに出てくるアプリケーションをHerokuへ反映するまでの手順をまとめてみました。 とても簡単なので、是非やってみて下さい。 GemfileにPostgreSQL設定 group :production do gem 'pg', '0.17.1' gem 'rai…

Ruby on Rails チュートリアル1章まとめ(演習も)

こんちにわ、opiyoです。 突然ですが、私は今日からプログラミングの勉強をスタートしようと思います。 その名も Railsブートキャンプ うん。そのまま! 基礎部分をRailsチュートリアルで行い、最終的に一つアウトプットできるwebサービスを作ることが目標で…

Rubyゴールド落ちちゃったから資格試験に出た問題を振り返ってみる

こんにちは@opiyoです。 去年Rubyシルバーを取得したので、せっかくならばゴールドまで取りたいと思って受験してきました。 シルバー取得した時に書いた記事はこちらです。 opiyotan.hatenablog.com 結果は100点中74点 合格ラインは……… 75点 くそっー めちゃ…