- 1. MySQLのモードに関して
- 2. [Rails]collection_selectで都道府県プルダウンを作成する
- 3. 本番画面での画像
- 4. 【Rails】Railsのビューヘルパーのdate,timeとデータベースのdate型time型
- 5. 自作ポートフォリオを掲げて、Web系自社開発企業に転職したいと考えている人へ
- 6. 【Rails】フォームのエラーメッセージを入力項目ごとに表示する
- 7. 【Rails】一つのメソッドをf.selectのオプションとバリデーションで使い回す
- 8. ec2デプロイ、unicorn.logのエラーActiveSupport::MessageEncryptor::InvalidMessage: ActiveSupport::MessageEncryptor::InvalidMessageの解決法
- 9. EC2デプロイの際のエラーActiveRecord::AdapterNotSpecified: The `production` database is not configured for the `production` environment.
- 10. EC2デプロイの際のエラーActiveRecord::AdapterNotSpecified: The `production` database is not configured for the `production` environment.
- 11. 【CentOS8】CentOS8でrails sをするとlibffi.so.7: cannot open shared object file: No such file or directory
- 12. 【Ruby/Rails】破壊的メソッドを利用した時にNoMethodErrorが出た時に対処したこと
- 13. [rails] Sorceryを使ってログインしているかによって、表示を変える方法
- 14. LocalStackを使用してS3の投稿をモックする
- 15. Rubyがrbenvからではなく、Macにデフォルトでインストールされているバージョンが参照されていた
- 16. オレオレRailsコーディング規約
- 17. renderとredirect_toの違い
- 18. Reactで右クリックした場所にメニューを表示してみたい。
- 19. 100日後に1人前になる新人エンジニア(6日目)
- 20. herokuでデプロイした後の更新の仕方
MySQLのモードに関して
# 自分のローカルで設定されているモード
“`
$ mysql –version
mysql Ver 14.14 Distrib 5.7.29, for osx10.15 (x86_64) using EditLine wrapper
$ mysql -uroot -p
mysql> select @@global.sql_mode;
+——————————————————————————————————————————————————+
| @@global.sql_mode |
+——————-
[Rails]collection_selectで都道府県プルダウンを作成する
# 前置き
他の記事を参考に導入してみましたが、これだけの手順で実装出来ました。
検索も出来たので、備忘録として残します。# 前提条件
ransack導入済# 1.導入
“`Gemfile
gem ‘active_hash’
“`
まずGemfileに上記のように記述し、bundle install。
再起動も忘れずに。#2.prefectureモデルを作成
こちら手動です。“`ruby:models/prefecture.rb
class Prefecture < ActiveHash::Base self.data = [ {id: 1, name: '北海道'}, {id: 2, name: '青森県'}, {id: 3, name: '岩手県'}, {id: 4, name: '宮城県'}, {id: 5, name: '秋田県'}, {id: 6, name: '山形県'}, {id: 7, name: '福島県'}, {id: 8, name: '茨城県'}, {id: 9, name: '栃木県'},
本番画面での画像
## はじめに
開発環境で画像が表示されていましたが、本番環境では画像が表示されませんでした。
その時に行ったことを書いていきます!## やったこと
①普通のイメージタグは
before“`
= image_tag (“assets/xxx.png”)
“`
after“`
= image_tag asset_path(“xxx.png”)
“`②link_toとの併用
before“`
= link_to image_tag(“/assets/xxx.png”), “ルートパス”
“`after
“`
= link_to “ルートパス” do
= image_tag asset_path(“xxx.png”)
“`③background-umageは
before“`
background-image: url(“/assets/xxx.jpg”);
“`after
“`
background-image: image-url(“/assets/xxx.jpg”);
“`## 原因
開発環境ではimage
【Rails】Railsのビューヘルパーのdate,timeとデータベースのdate型time型
## 概要
ビューヘルパーのdateやtimeの値をparamsから受け取ると次のようになっているため少し面倒だったという内容です。
合わせてこれをデータベースに格納したときのデータについても触れています。“`html
## データの取り出し方
dateやtimeは次のように一つを指定しないと取り出すことができません。
パラメーター名に[:date]のように指定してしまうとnilが返ってきます。通常
“`zsh
params[:パラメーター名]
params[:
自作ポートフォリオを掲げて、Web系自社開発企業に転職したいと考えている人へ
# ターゲット
自作ポートフォリオを掲げて、Web系自社開発企業に転職したいと考えている人# 結論
### トピック1の結論
転職までの最短経路を十分に考え、場合によっては何も掲げずに転職活動すべし。### トピック2の結論
ほぼ未経験からのスタートなら、プログラミングスクールに通うべし。# 話すトピック
1. 友人の転職に心がざわついた
2. 自力でポートフォリオを作成するときの罠# 友人の転職に心がざわついた
先日(2020年5月26日)、大学時代の友人から転職したと連絡がありました。本来ならおめでとうの言葉が先に出るべきなのでしょうが、現在転職のためにポートフォリオを作成している身ですから、なんとも複雑なわけでした。悲しい・虚しい、、、うーん。この複雑な気持ちの正体を知れば、自分のことをもっと理解できるかもしれない。そんな風に思い、色々思考を巡らせました。
感情の正体は、
`3ヶ月で有名企業から内定を獲得した友人と、仕事以外の大半の時間を使用して、半年かかっても現職から離れられないでいる自分に、圧倒的な差を感じ、なんともやるせない気持ちになった`ということ
【Rails】フォームのエラーメッセージを入力項目ごとに表示する
## 実現したいこと
次の画像のようにフォームにある入力項目一つ一つに対してエラーメッセージを表示させます。
localesでの日本語化もしていますが、こちらのインストールなどについてはカバーしていないので知りたい場合は参考のURLなどから確認してください。
## 環境
ruby: 2.7.1
rails: 6.0.2.2## コード
### エラーメッセージ表示のパーシャルを作成
modelとattributeを変数にすることで使いまわせるようにしています。
errors.full_messages_forを利用して入力項目に対応したエラーメッセージのみを表示します。
/app/views/layouts/_error_messag
【Rails】一つのメソッドをf.selectのオプションとバリデーションで使い回す
## 前置き
erbのセレクトボックス一つ一つにオプションの値を書いていると、見落としや編集の手間を感じたので1箇所に集めようと思った。
初めはhelperを使用していたが、同じ配列がバリデーションでも流用できるのではと思い今回の形になりました。しかし、セキュリティの側面からみた場合、バリデーションで同じメソッドの値を使い回すこのやり方はどうなのか?という疑問が残ります。
また、バリデーションで流用するためにmodelにメソッドを定義しましたが、viewで表示するデータの作成は本来のmodelの役割ではない部分も意識する必要がありそうです。## 環境
ruby: 2.7.1
rails: 6.0.2.2## コード
### model
“`ruby
class Log < ApplicationRecord # クラスメソッドの定義 class << self def selectBoxOptions(key) if key == "fruits" return [ "なし", "りんご", "いちご"] e
ec2デプロイ、unicorn.logのエラーActiveSupport::MessageEncryptor::InvalidMessage: ActiveSupport::MessageEncryptor::InvalidMessageの解決法
これを試す。
https://qiita.com/shota0701nemoto/items/2a7f5556803926c33d45#%E3%83%AD%E3%83%BC%E3%82%AB%E3%83%AB%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%81%9D%E3%82%8C%E3%81%9E%E3%82%8C%E5%90%88%E8%A8%884%E3%81%A4%E3%81%AEmasterkeycredentialsymlenc%E4%BD%9C%E6%88%90%E3%81%97%E3%81%A6%E7%B4%90%E3%81%A5%E3%81%91%E3%82%8B%E6%89%8B%E9%A0%86
EC2デプロイの際のエラーActiveRecord::AdapterNotSpecified: The `production` database is not configured for the `production` environment.
database.ymlに何らかの記述ミスが起こっている。
EC2デプロイの際のエラーActiveRecord::AdapterNotSpecified: The `production` database is not configured for the `production` environment.
database.ymlに何らかの記述ミスが起こっている。
【CentOS8】CentOS8でrails sをするとlibffi.so.7: cannot open shared object file: No such file or directory
# ◆エラー
“`
libffi.so.7: cannot open shared object file: No such file or directory
“`# ◆解決策
“`
sudo ln /lib64/libffi.so.6 /lib64/libffi.so.7
sudo ld config
“`# ◆効果がなかったこと
## ●ffiのインストールし直し
“`
gem reinstall ffi
“`## ●libffiとlibffi-develが入っているか確認(入ってた)
“`
sudo dnf install libffi libffi-devel
“`
【Ruby/Rails】破壊的メソッドを利用した時にNoMethodErrorが出た時に対処したこと
## 起きたエラー
filter!の類の破壊的メソッドを使った時にNoMethodErrorが出ました。
対処出来たのでメモがてら残します。(間違ったら優しく教えてください…。)
## 再現する方法
“`object_controller.rb
def index
@object = Object.all
@object.filter! do |o|
o.id != 1
end
end
“`※命名適当なのは勘弁してください。
オブジェクトをallとかで配列で取得した時に、filterみたいな非破壊的メソッドは使えたのですが、filter!みたいな破壊的メソッドで条件に一致しないオブジェクトを弾いた配列を作ろうとしてました。
ですが、一番最初の見出しの通りNoMethodErrorを吐きました。
## 対処した方法
“`object_controller.rb
def index
@object = Object.all
@object.to_a.filter! do |o|
o.id != 1
end
end
“`
[rails] Sorceryを使ってログインしているかによって、表示を変える方法
オリジナルアプリ作成中の者です。
ナビバーをログインしているかによって、表示の切り替えをしたいと考えました。
CSSフレームワークはBootstrapを使用中です。“`ruby:ナビバー作成中
<%= link_to "Yes, we can", root_path, id: "logo", class: "navbar-brand" %>
LocalStackを使用してS3の投稿をモックする
LocalStack は、AWS のサービスを開発環境において擬似的に使用できるモックフレームワークです。
定番の S3 から Lambda まで多くのサービスを開発環境で体験できます。本記事では、Railsチュートリアルの SampleApp を使用し、コンテナ環境で実装します。
コンテナの設定は、[Railsチュートリアルの開発環境を Docker でもっと便利にしなイカ!? \- Qiita](https://qiita.com/Moo_Moo_Farm/items/8e0f92b9f45e08285d97)の続きとなります。今回の実装コードは右の通りです=>([実装コード –github](https://github.com/masayuki-0319/sample_app/pull/8))
—
– 実行環境
– Ruby: 2.4.9
– Rails: 5.1.2
– fog: 1.14.0
– carrierwave: 1.1.0
– references
– [localstack/localstack: ? A fully fun
Rubyがrbenvからではなく、Macにデフォルトでインストールされているバージョンが参照されていた
## rbenvとMacのデフォルトでインストールされているRubyのバージョンの相違
作業を開始しようとしていつものように`bin/rails s`をしたら以下のようなメッセージが出てきました。“`
$ bin/rails s
Your Ruby version is 2.6.3, but your Gemfile specified 2.6.5
“`システムで設定されているRubyのバージョンを確認するとrbenvで2.6.5をインストールしているはずなのに2.6.3になってしまっています。
“`
$ ruby -v
ruby 2.6.3p62 (2019-04-16 revision 67580) [universal.x86_64-darwin19]
“`念のためrbenvで指定しているバージョンも確認しましたが、2.6.5で間違いはないです。
“`
$ rbenv versions
system
* 2.6.5 (set by /Users/ユーザー名/desktop/ディレクトリ名/.ruby-version)
2.7.0
“`##
オレオレRailsコーディング規約
# あらすじ
吾輩は末端エンジニアである。名前はしょった。先日、急遽あるRailsアプリの引継ぎ業務に駆り出された。吾輩はここで始めて、アプリのコードを見た。しかもこのコードがまあ追いにくい。ブチギレ寸前である。# アンチパターン
というわけで本題。
先に、ここでいうアンチパターンというのは一般に流布されているそれとはまるで別物であるということは先にお伝えしておきたい。あくまで個人的なベストプラクティスであり、引き継ぐならこうなっていて欲しい(欲しかった)という願望である。## 1. 1つのディレクトリ内に無駄にファイルが多い
今、ここに猫がいる。猫はかわいい。神は猫をこう定義した。
“`ruby:./cat.rb
class Cat
def comment
puts “かわいい”
end
end
“`猫は猫耳と尻尾、そして肉球でできている。
神はかわいい猫をこう定義し直した。“`ruby:./cat.rb
class Cat
def initialize
@parts = [
CatEar.new,
Ca
renderとredirect_toの違い
## render
次に指定するViewを指定している。
今持っている変数で新しいViewを構成する。## redirect_to
次に指定するメソッドを指定している。
ブラウザに対して指定したメソッドにHTTPリクエストを送るように司令する。
リクエストが二回発生してしまうことになる。例:
=> GET home/show
<= redirect_to => Get home/index
<= home/index
Reactで右クリックした場所にメニューを表示してみたい。
# Reactで右クリックメニュー
先日書いた[React+Railsで付箋っぽいアプリを作る](https://qiita.com/hanaitama-kaz/items/5b68b9c665f75020bcd4)中で、右クリックメニューを作ってみたいなぁ、と、調べた内容と実装方法を書いていきたいと思います。## oncontextmenuのイベントハンドラを作れば良い
[JavaScriptのドキュメント](https://developer.mozilla.org/ja/docs/Archive/Mozilla/XUL/PopupGuide/ContextMenus)によれば、oncontextmenuイベントをハンドルすることで、独自のメニューが作れそうです。## 実装方針
ここでは、以下の方針で実装してみることにしました。1. 右クリックした場所にメニューを表示する。
1. メニューの要素は、Reactのコンポーネントとして作ってみる。
1. 環境は、[React+Railsで付箋っぽいアプリを作る](https://qiita.com/hanaitama-kaz
100日後に1人前になる新人エンジニア(6日目)
#100日後に1人前になる新人エンジニア(6日目)
どうもこんばんは。今日のお題はテストです。
Railsってテストがいくつかあってそれらの特徴についてまとめてみたいと思います。今日取り上げるテストは2つです。
● Minitest
● RSpec
の2つです。私はRails Tutorial と プロを目指す人のためのRubyという書籍を読んでいたのですが、これらで取り上げられていたのはどちらもMinitestでした。しかしながら実際の私の業務ではRSpecを使用するため
双方の特徴を知りたいなと思い本日まとめたいと思います。##Minitest
minitestはRubyと一緒にインストールしてありますので、特にセットアップなどは必要なく、またRuby on Railsにおいてもデフォルトで入っているテストフレームワークであります。とのこと。
実際requireでMinitestを記述するだけで使える様になります(簡単!)その他の特徴としては
● RSpecよりもロード時間が短い
● 必要最低限の機能を備えている(プラグインで追加する)
● Rubyの文法がわかれば
herokuでデプロイした後の更新の仕方
“`ターミナル
$git add -a
$git commit -m “Update application”
$git push heroku master
“`
テーブル追加、内容変更をしたとき“`ターミナル
$heroku run rails db:migrate
“`