Rails関連のことを調べてみた2020年06月21日

Rails関連のことを調べてみた2020年06月21日

[Rails]アプリケーションの日時表示を日本時間にする方法

## Railsの時間基準
Railsの時間基準はデフォルトで協定時(UTC)となっています。
今回はこれを日本時間に修正する方法をまとめています。

## タイムゾーン設定の記述
設定方法はシンプルです。
Railsのなかにある**application.rb**の中身を編集するだけ!

“`application.rb
# 省略
class Application < Rails::Application # Initialize configuration defaults for originally generated Rails version. config.time_zone = 'Tokyo' #ここを追加 # Settings in config/environments/* take precedence over those specified here. # Application configuration can go into files in config/initializers # -- all .r

元記事を表示

Dockerfile、docker-compose.ymlの説明

##コンテナ
仮想環境そのもの。

##イメージ
Dockerコンテナを実行する際に必要なもの。

##Dockerfile

Dockerのイメージを自動で作成してくれるファイル。

##Docker compose
複数のコンテナからなるサービスを構築、実行する手順を自動的にし、管理を用意にする機能。docker compose hogehoge というコマンドを実行することで、そのファイルから設定を読みこんえ全てのコンテナを起動することができる。

##Dockerfileの中身でよく使われるコマンド
###FROM
使用するイメージとバージョン

###-qq
エラー以外何も吐かないようにする

###-y
全てyesで実行する設定

###RUN
コマンドの実行

###WORKDIR
作業ディレクトリ先の設定

###COPY
コピー元とコピー先のファイルまたはディレクトリを指定

##docker-compose.ymlで使われるコマンド

###service
アプリケーションを動かすための各要素のこと。
通常はwebとdb(Mysql、Postgresql)と

元記事を表示

【Rails】ancestryを用いた多階層カテゴリー機能の実装『編集フォーム編』

# 目標

![ezgif.com-video-to-gif.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/579893/9e75c70b-d0d0-6cd5-5ec9-894af5d3bb34.gif)

# 開発環境
・Ruby: 2.5.7
・Rails: 5.2.4
・Vagrant: 2.2.7
・VirtualBox: 6.1
・OS: macOS Catalina

# 前提

下記実装済み。

・[Slim導入](https://qiita.com/matsubishi5/items/b639ffddecc626856039)
・[Bootstrap3導入](https://qiita.com/matsubishi5/items/b117c95f4dd71340cc80)
・[Font Awesome導入](https://qiita.com/matsubishi5/items/a4c72f436e64ad106ee8)
・[ログイン機能実装](https://qiita.com/mat

元記事を表示

Rails プレゼンターを導入する

#プレゼンターを導入する

プレゼンターとはView部分にあるロジックのHTMLコードを精製する役割を担います。
要はview部分をスッキリさせようぜってもんです。
プレゼンターはデコレーターとも呼ばれます。

GemではDraper,Cellsなどが使われているようですが、
Gemを今回は使わずに実装をしていきます。

##helperはあかんのか?
ビューで使用するメソッドなのでヘルパーメソッドとして定義するのは自然です。
でもhelperはグローバルに定義される、メリットとデメリットがあります。
プロジェクトが大きくなるにつれて名前が衝突するリスクが増してしまいます。

今回は以下のコードに含まれるロジック部分を分離していきます。
犯罪者リストのロジックです。
arrested?(逮捕されているか?)でtrueの場合は☑️をつけ、
そうでない場合は空欄の□となります。

“`erb
<% @members.each do |m| %>
<%= m.arrested? ? raw("☑") : raw("☐") %>
“`

##Modelに関

元記事を表示

irbとpryの違いについて

irbはRuby付属の対話的環境。標準搭載。

pryはgem。Railsのデバックにはpryがオススメらしい。

イメージとしては、irbよりpryの方が少しリッチ。(そんなに変わらないが)

元記事を表示

rails test環境構築(RSpec)

#RSpec準備
“`ruby:Gemfile
group :development, :test do
gem ‘rspec-rails’
gem ‘rails-controller-testing’
gem ‘factory_bot_rails’
gem ‘faker’
end
group :development do
gem ‘web-console’ #記述済みの可能性あり
end
“`
“`terminal:Gemfile記述後Terminal
$ bundle install
$ rails g rspec:install
#RSpec用設定ファイルの作成
“`
“`ruby:.rspec
–format documentation
“`
Terminalで下記で実行可能
$ bundle exec rspec

#specディレクトリ配置
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/630397/d9e81961-59ae-d729-d

元記事を表示

ProgateのRailsレッスンⅥ反省点

# 今日の反省点(ProgateのRailsⅥをやってみて)

## find_byメソッドの使い方をちゃんと理解してなかった。
これは特定の投稿を受け取れるようにするメソッド。

“`ruby:qiita.rb
@post = Post_find_by(カラム名: params[:content])
“`
これでカラム名の投稿を@postが受け取ることが出来る。

## Linkの際、変数変換を使うことを忘れていた。

“`ruby:qiita.rb
<%= link_to(post.content, "/posts/#{post.id}") %>
“`
学習環境ではeach文のあとだからpostになるという認識。

## form_tagメソッドの意味と使い方。

これは入力フォームを送信するときに使うもの。

“`ruby:qiita.rb
<%= form_tag("飛ばすリンク先") do %>

< % end %>
“`

タグをdoとendの間に囲む。

## createアクションの中身
これは中身に書くコー

元記事を表示

progateで習得したrailsの基礎知識まとめ

## どんな人向けの記事か
– Railsを学び始めて間もない人
– Railsで初めてアプリを作ろうとしている人
– Rails慣れはしているけど少し復習したい人

## どんな記事か
Rails初学者である筆者が、先日修了したprogateのRailsコースで学んだことを並べていく記事です。
ところどころ他記事の情報で補完しているため、progate運営が表現・説明した内容とは異なる箇所もそれなりにあります。

## 各種概念
#### サーバー
クライアント(ブラウザ)の要求に応じてデータを提供するコンピュータ。
Railsで作ったアプリをブラウザで表示するためには、このサーバーを起動させる必要がある。

#### ビュー
ページの見た目を作るためのHTMLファイル。ブラウザとRailsのやりとりの中で、Railsからビューが返されることで、ページが表示される。
拡張子は`.html.erb`。erbはEmbedded Rubyの略で、HTMLファイルにRubyスクリプトを埋め込むための仕組み。
下記のコントローラ・ルーティングと同様に、ページを作成するのに必要な3つの要素のうち

元記事を表示

【Rails】ancestryを用いた多階層カテゴリー機能の実装『作成フォーム編』

# 目標

![ezgif.com-video-to-gif.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/579893/823563e9-302b-6a20-b712-0cb207d73472.gif)

# 開発環境
・Ruby: 2.5.7
・Rails: 5.2.4
・Vagrant: 2.2.7
・VirtualBox: 6.1
・OS: macOS Catalina

# 前提

下記実装済み。

・[Slim導入](https://qiita.com/matsubishi5/items/b639ffddecc626856039)
・[Bootstrap3導入](https://qiita.com/matsubishi5/items/b117c95f4dd71340cc80)
・[Font Awesome導入](https://qiita.com/matsubishi5/items/a4c72f436e64ad106ee8)
・[ログイン機能実装](https://qiita.com/mat

元記事を表示

未経験からエンジニアになって一ヶ月がたった…

#未経験からエンジニアになって一ヶ月がたった…

未経験の営業社員からエンジニアになって一ヶ月がたちました。
感じていることや思ったことをメモがてら。

##難しい、けど面白い

できないことばっかりで人に聞く回数も多い。
でもやっぱりプログラムを書くことは楽しいし、
何かを作ることは楽しい。この業界を選んで良かったと思ってます。

##もっともっと勉強を
みんな情報技術が好きで常に学んでいる。
僕ももっともっと勉強をしなければ周りの人たちには一生追いつけない。
そしてもっともっと楽しんで技術を追求していきたい。

##connecting the dots
興味のある技術は仕事に直接関係が無かったとしても、
積極的に学んでいきたい。
その時はどこに繋がっているか見えなかったとしても、
きっとどこかに繋がっていると信じることが大切だと
ジョブズが言っていた。

##スピードを上げる。
仕事のスピードを上げる。
そのために知識をつける。
言語に対する知識。
業務的な知識。
ツールに対する知識。

##要はもっと勉強しよう
一日一日を大切にがんばっていきます。

**一人前のエンジニ

元記事を表示

Railsエンジニアの環境構築ruby2.7.1

macが故障して入れ直しが必要だったため備忘録として書きます。
herokuやitem2の設定など、必須じゃない設定も載せてます。

# Command Line Tools
“`
xcode-select –install
“`
は重いのでxcodeインストールしてこっちでやる

スクリーンショット 2020-06-20 10.15.43.png

####確認
“`
xcode-select -version
“`

# Homebrew
https://brew.sh/index_ja

####確認
“`
brew -v
“`
# rbenv
“`
brew install rbenv ruby-build
“`

## zshrc設定
####なかったら

“`
vi .zshrc

元記事を表示

Railsポートフォリオ作成の備忘録①

#1.rails new

Mysqlを指定して、rails new アプリを作成した

“`
$ rails new アプリ名 -d mysql
“`

# 2.MYSQLのインストール
Mysqlをインストールした。
https://qiita.com/hkusu/items/cda3e8461e7a46ecf25d

# 3.データベースの環境設定

database.ymlのユーザーとパスワードを以下のように設定する。
(セキュリティの観点、共同作業を容易にする目的のため、環境関数を使用する)

“`
username: <%= ENV['DATABASE_アプリ名(大文字)_DEV_USER'] %>
password: <%= ENV['DATABASE_アプリ名(大文字)_DEV_PASSWORD'] %>
“`

この後、ターミナルでviコマンドを使用する。

“`
vi ~/.bash_profile
“`
以下追記すること
“`
export DATABASE_”アプリ名”_DEV_USER=’root’
export DATABASE_”アプリ名”_

元記事を表示

webサーバとアプリケーションサーバって何が違うんだろう?

「webサーバとアプリケーションサーバって何が違うんだろう?」、ふと思ったのでまとめた。

#サーバとは
まずサーバって何?という話。サーバは英語でserver、つまり供給する・提供するってこと。[IT用語辞典](http://e-words.jp/w/%E3%82%B5%E3%83%BC%E3%83%90.html) によるとサーバとは、コンピュータネットワークにおいて、他のコンピュータに対し、自身の持っている機能やサービス、データなどを提供するコンピュータのこと。私たちがwebページを閲覧するとき、自分のPCから「このページ見たい!」とサーバにお願いする。すると、サーバが「はい、これ!」とページを返してくれる。これで、めでたくwebページが見れる。通常、個々のサーバ機やサーバソフトは、外部に提供する機能やサービス、対応しているデータ形式やプロトコル(通信規約)が決まっている。そして、「DBサーバ」「webサーバ」「アプリケーションサーバ」のように、提供する機能などの種類を冠して「○○サーバ」と呼ぶ。

#webサーバ
webサーバはブラウザからのコンテンツのリクエストを受け取り、ブ

元記事を表示

[Rails5.2] CircleCI × Capistrano でテスト成功後にAWSへ自動デプロイする

# 概要
以下の2つの機能を実装するための方法を記載しています。

– CircleCIを使用してプッシュと同時にRuboCop, Rspecを走らす。
– テスト成功後にCapistranoによってAWSに自動デプロイする

## 前提

– Rails5.2
– Capistranoによる自動デプロイを実装している

実装に当たって、以下の記事を大変参考にさせていただきました。
[rails5.2/Capistrano/CICD環境によるAWSへの自動デプロイ](https://qiita.com/AK4747471/items/882b70f663f4a80ae770)

上記記事の内容だけでも、テスト→デプロイの処理は実現できます。
この記事は、上の参考記事の補足として、workflowによる処理を追加することで、テストが成功した場合のみデプロイを実行する方法を解説しています。

補足部分のみ記事にしているため、そこに到るまでの過程については上の参考記事をご覧下さい。

# 実装
早速ですが、最終形のコードは以下のようになりました。
後でいくつかのブロックに分けながら解説してい

元記事を表示

ERROR! MySQL server PID file could not be found!

“`
asatokensei@MacBook-Air memopy % mysql.server start
Starting MySQL
……
.^C
asatokensei@MacBook-Air memopy % mysql.server stop
ERROR! MySQL server PID file could not be found!

asatokensei@MacBook-Air memopy % ls -la /usr/local/var/mysql/MacBook-Air.local.pid
ls: /usr/local/var/mysql/MacBook-Air.local.pid: No such file or directory

asatokensei@MacBook-Air memopy % mysql.server status
ERROR! Multiple MySQL running but PID file could not be found (14996 15095 )
asatokensei@MacBook-Air me

元記事を表示

MYSQL と RAILSの接続が上手くいかなかった

#問題点

Rails db:createが上手くいかなかった。

“`
$ bundle exec rails db:create
“`
すると、以下のエラ〜メッセージが。

“`
rails aborted!
LoadError: dlopen(/Users/naganoyuki/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/mysql2-0.5.3/lib/mysql2/mysql2.bundle, 9): Library not loaded: /usr/local/opt/mysql@5.6/lib/libmysqlclient.18.dylib
Referenced from: /Users/naganoyuki/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/mysql2-0.5.3/lib/mysql2/mysql2.bundle
Reason: image not found – /Users/naganoyuki/.rbenv/versions/2.6.3/l

元記事を表示

【formで引数が2つのもの】rails, form_for / form_with 引数

##【ゴール】

##【メリット】
■ formの理解
■ アソシエーションの理解

##【開発環境】
■ Mac OS catalina
■ Ruby on Rails (5.2.4.2)
■ Virtual Box:6.1
■ Vagrant: 2.2.7

##カリキュラムにて

####form_for[@post, @comment]…..

ん?

今までは、
form_for(@post)….

引数が一つだったのに、なんで二つも???

####理由は引数を2つ渡さないといけないから。

今回の場合は**アソシエーション**されている為

Post : comment = 1 : 多

なので、postのにも、commentにも値を与える必要がある、、、

なので、

####form_for[@post, @comment]になる!!!!

以上、
修正箇所ございましたら、FBください!!

##【合わせて読みたい】

■コメント機能実装について
https://qiita.com/tanaka-yu3/items/93d94b1ede8fb4be2981

元記事を表示

MY SQLでrootパスワードを強制的に変更する (Mysql 8.0.19)

MYSQLを初めて操作した時、パスワードを忘れてしまいました。
その時、パスワードを強制的に変更して解決しました。

備忘録です。

<環境>
MYSQL 8.0.19

# エラー内容

“`
ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: YES)
“`

こんなエラーに遭遇しました。

※MYSQLのバージョンが5.6の時は以下リンクの方法で解決していました。

https://qiita.com/Yuki0531/items/6529b82ea04dd31c055d

# やったこと① – パスワードなしでログインする

以下コマンドで、MYSQLを一旦止めます。

“`
$ mysql.server stop
“`

下記コマンドで、セーフモードで起動させます。

“`
$ mysqld_safe –skip-grant-tables &
“`

rootでログイン

“`
$ mysql -u root
“`

# やったこと② – 新しいパスワ

元記事を表示

scaffoldの初期状態まとめ

scaffoldをもとに開発しているとき初期のコードを忘れてしまう事があるのでコントローラーとindexとフォームをメモしときます。

“`ruby:posts_controller.rb
class PostsController < ApplicationController before_action :set_post, only: [:show, :edit, :update, :destroy] # GET /posts # GET /posts.json def index @posts = Post.all end # GET /posts/1 # GET /posts/1.json def show end # GET /posts/new def new @post = Post.new end # GET /posts/1/edit def edit end # POST /posts # POST /posts.json def create @post

元記事を表示

主なステータスコードまとめ

自分用メモです。

| ステータスコード | シンボル | 意味 |
|:—————-|————————:|:———————-:|
| 200 | :ok | 成功
| 201 |:created | リソースの作成に成功
| 301 |:moved_permanently | リソースが恒久的に移動した
| 302 |:found | リソースが一時的に移動した
| 303 |:see_other | リソースが別の場所にある
| 401 |:unauthorized | 認証を要求
| 403

元記事を表示

OTHERカテゴリの最新記事