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

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

FinderのデフォルトテキストエディタをAtomに変更する方法

システム環境設定からデフォルトテキストエディタを変更出来なかったのでやり方を調べてみました。

#手順

1.Finderから適当なテキストファイルを右クリックし「情報を見る」を選択
2.▼このアプリケーションから設定したいテキストエディタを選択(今回はAtom)
3.その下の「全てを変更」で設定完了

3を飛ばせばファイルごとにエディタを選択できるみたいですね

元記事を表示

【後編】「Everyday Rails – RSpecによるRailsテスト入門」を Rails 6 で勉強したいので伊藤さんのブログを参考にして頑張ってみた

# はじめに

この記事は、タイトルのとおり、「Everyday Rails」を Rails 6 で勉強したいので、
書籍の翻訳者である伊藤さんのブログを参考にして頑張ってみた記録を記したものである。

記事自体が長くなったので、導入編・前編・中編・後編に分割している。

Rails 6 へのアップグレードは非常に時間がかかるので、いきなり挑戦するのではなく、
まず導入編を読んでいただき、本当に挑戦するのか検討することを強く勧めます。

記録を見たい方は、以下を参照すること。

> [【導入編】「Everyday Rails \- RSpecによるRailsテスト入門」を Rails 6 で勉強したいので伊藤さんのブログを参考にして頑張ってみた \- Qiita](https://qiita.com/miketa_webprgr/items/a93c320fb9e3b4f0b6a5)
> [【前編】「Everyday Rails \- RSpecによるRailsテスト入門」を Rails 6 で勉強したいので伊藤さんのブログを参考にして頑張ってみた \- Qiita](https:/

元記事を表示

【中編】「Everyday Rails – RSpecによるRailsテスト入門」を Rails 6 で勉強したいので伊藤さんのブログを参考にして頑張ってみた

# はじめに

この記事は、タイトルのとおり、「Everyday Rails」を Rails 6 で勉強したいので、
書籍の翻訳者である伊藤さんのブログを参考にして頑張ってみた記録を記したものである。

記事自体が長くなったので、導入編・前編・中編・後編に分割している。

Rails 6 へのアップグレードは非常に時間がかかるので、いきなり挑戦するのではなく、
まず導入編を読んでいただき、本当に挑戦するのか検討することを強く勧めます。

記録を見たい方は、以下を参照すること。

> [【導入編】「Everyday Rails \- RSpecによるRailsテスト入門」を Rails 6 で勉強したいので伊藤さんのブログを参考にして頑張ってみた \- Qiita](https://qiita.com/miketa_webprgr/items/a93c320fb9e3b4f0b6a5)
> [【前編】「Everyday Rails \- RSpecによるRailsテスト入門」を Rails 6 で勉強したいので伊藤さんのブログを参考にして頑張ってみた \- Qiita](https:/

元記事を表示

【前編】「Everyday Rails – RSpecによるRailsテスト入門」を Rails 6 で勉強したいので伊藤さんのブログを参考にして頑張ってみた

# はじめに

この記事は、タイトルのとおり、「Everyday Rails」を Rails 6 で勉強したいので、
書籍の翻訳者である伊藤さんのブログを参考にして頑張ってみた記録を記したものである。

記事自体が長くなったので、導入編・前編・中編・後編に分割している。

Rails 6 へのアップグレードは非常に時間がかかるので、いきなり挑戦するのではなく、
まず導入編を読んでいただき、本当に挑戦するのか検討することを強く勧めます。

導入編・中編・後編については、以下を参照すること。

> [【導入編】「Everyday Rails \- RSpecによるRailsテスト入門」を Rails 6 で勉強したいので伊藤さんのブログを参考にして頑張ってみた \- Qiita](https://qiita.com/miketa_webprgr/items/a93c320fb9e3b4f0b6a5)
> [【中編】「Everyday Rails \- RSpecによるRailsテスト入門」を Rails 6 で勉強したいので伊藤さんのブログを参考にして頑張ってみた \- Qiita](h

元記事を表示

【導入編】「Everyday Rails – RSpecによるRailsテスト入門」を Rails 6 で勉強したいので伊藤さんのブログを参考にして頑張ってみた

# はじめに

この記事は、タイトルのとおり、「Everyday Rails」を Rails 6 で勉強したいので、
書籍の翻訳者である伊藤さんのブログを参考にして頑張ってみた記録を記したものである。

ただ、記事自体が長くなったので、導入編ではその記録を記していない。
**Rails 6 で勉強する場合は時間がかかるので覚悟した方がよい**という注意喚起のみしか記載していない。

記録を見たい方は、以下を参照すること。

> [【前編】「Everyday Rails \- RSpecによるRailsテスト入門」を Rails 6 で勉強したいので伊藤さんのブログを参考にして頑張ってみた \- Qiita](https://qiita.com/miketa_webprgr/items/8d44428e5bbe8f6b3f6a)
> [【中編】「Everyday Rails \- RSpecによるRailsテスト入門」を Rails 6 で勉強したいので伊藤さんのブログを参考にして頑張ってみた \- Qiita](https://qiita.com/miketa_webprgr/ite

元記事を表示

ProgateのRuby on Railsコースの気になった所【params】

プログラミング未経験の初心者ですが、少し前にProgateのRuby on Railsコースを終わりました。

Railsチュートリアルをしながら復習してみると、Progateをやっていた時はあまりピンと来なかったけど、今なら少し理解できることが増えたので、気づいた点をまとめていきたいと思います。
Progateしているけど、ピンと来ていないな、ここ分からないなと思っている方のお役に立てば幸いです。

# paramsとは何か【コースⅢ】
Railsコースで頻出するparamsですが、正直「わかるような、わからないような…」と思っていました。

平たく言うと、
paramsはURLから送られてきた値やフォームで入力した値を`params[:パラメーター名]`で取得するメソッドです。

例をあげると投稿内容の詳細ページの場合だとこのような使い方になります。

def show
 @post = Post.find_by(id:params[:id])
end

自分の場合、一つひとつの知識はその時には言っていることは分かるけど、記述していると知識が繋がら

元記事を表示

楽天ブックス(DVD)APIで検索機能実装する

#はじめに
現在映画検索サービスを開発中でrails,ajaxを使って非同期通信を実装しておりました。
数日間ハマった後、ようやく実装できたので記録を残しておきます。
jqueryはハンバーガーボタン等、動きをつける時など、少し触りましたがAjaxを触るのは初めてで数日はまりました。(サーバー再起動してないためコードが反映されてないとかの関係もありました。)

#環境
-rails (5.2.4.1)
-ruby (2.5.3)

__楽天API__を実装する方は(__Rails__の場合)__gem__をインストールしてください。
実装手順は省きます。
詳しくは[__コチラ__](https://github.com/rakuten-ws/rws-ruby-sdk/blob/master/README.ja.md)

#コントローラー処理指定

まずはじめに、検索欄に記入された内容を処理させるためにposts_contriller内のアクションを指定します。

“`ruby:routes.rb
get ‘search’, to: ‘posts#search’ #キーワードを検索した

元記事を表示

Railsで「整数のみ」、「0以上の正の数のみ」のvalidatesの書き方

#環境
Rails 5.1.7
ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-linux]

#結論
“`
validates :price, presence: true, numericality: {only_integer: true, greater_than_or_equal_to: 0}
“`

#解説
「整数のみ」の箇所
“`only_integer: true,
“`

「0以上の正の数のみ」の箇所
“`greater_than_or_equal_to: 0
“`

元記事を表示

Rails Vue の「Hello Vue!」が表示できない

# 起こっていたこと

## ブラウザ

なにも表示されない。真っ白のまま。

## 開発者コンソール

警告が表示されていた。

“`
[Vue warn]: You are using the runtime-only build of Vue where the template compiler is not available. Either pre-compile the templates into render functions, or use the compiler-included build.
“`

### その訳

“`
[Vue warn]。テンプレートコンパイラが利用できないVueの実行時のみのビルドを使用しています。テンプレートをレンダリング関数にプリコンパイルするか、コンパイラを含むビルドを使用します。
“`

# ファイル内容

“`hello_vue.js
import Vue from ‘vue’;
import App from ‘./app.vue’

document.body.appendChild(document.cr

元記事を表示

カラムのdefault制約をマイグレーションで変更する

### emailカラムのDEFAULT制約を消す

“`diff:schema.rb
create_table “users”, force: :cascade do |t|
– t.string “email”, null: false, default: “”
+ t.string “email”, null: false
end
“`

“`ruby
class RemoveDefaultRestrictFromUsers < ActiveRecord::Migration[6.0] def change change_column_default :users, :email, from: "", to: nil end end ``` 補足:from-toを省略した `change_column_default :users, :email, nil` の書き方でもdefault制約を消すことはできたのですが、`db:rollback`が失敗します。(元の値が分からなくなるため) ### adminカラムの初期値をtrueからfalseに変える

元記事を表示

【Rails】多対多のカテゴリー機能の実装

# 目標

![ezgif.com-video-to-gif (1).gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/579893/8224071c-70fc-f8dd-c7b3-4ec67f19d85f.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)
・[投稿機能実装](https://qiita.com/matsubishi5/items/1a5aeab651b5822d1f2c)
・[カテゴリー機能実装](https://qiita.com/matsub

元記事を表示

rails メモ化とは

どうもチャンクノです!
今回は前職の同僚にメモ化というものを教えてもらったのでそれについて書こうと思います。
その同僚いわく知っていたらドヤ顔できるらしいです。
できなくても僕のことは責めないで下さい。

まずメモ化ってなんだと思いますよね。
メモ化とは

“`
メソッドが最初に呼び出されたときに戻り値がキャッシュされ、
それ以降、同じスコープ内でメソッドが呼び出されるたびにキャッシュされた値が返されることを意味します。
“`
とのこと。
なるほど。分からんですね。

コードを見た方が手っ取り早いかもしれません。
簡単な例で書くと

“`
def update
user.comment.update(comment_params)
end

private

def user
@user ||= User.find(params[:id])
end
“`

色々省いて書きましたがこんな感じです。
注目する部分は

“`
@user ||= User.find(params[:id])
“`
ここですね。
||= この記述なんやねん、そう思うのではないで

元記事を表示

Rails環境でER図自動化についての調査の共有

#はじめに
業務でER図を自動化したいという要件があってその時に調査した内容をせっかくなのでこちらでも共有したいと思います。

#調査の結果
まず調査の結果からですがやはり業務で使ってるデータベースのテーブル数やカラム数はかなりの数なので正式なER図として認定するには少し難しいという結論になりました。
まあというより不必要なテーブルやカラムまで表示されてしまうので全部出力するのもそれはそれで無駄だよね。だけど今更切り分けも難しいという感じになりました。
ただローカルで確認する分には結構いい物もあったので今回共有しようかなと思うに至った所存です。

#前提
どの方法も**graphviz**を使用するため、以下コマンドで**graphviz**をOSにインストールします。

“`terminal
$ brew install graphviz
“`

##案1 rails ERD(Gem)
個人開発レベルならこれでも全然見やすいんですけど業務で使うとなるとフォーマットが見づらくてざっくりしたテーブルの関係性しか見れませんでした。

https://github.com/voormed

元記事を表示

【Rails】カテゴリー機能の実装

# 目標

![ezgif.com-video-to-gif.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/579893/c3f6f0a2-9d4b-0e33-c1b3-cab2aa731a35.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)
・[投稿機能実装](https://qiita.com/matsubishi5/items/1a5aeab651b5822d1f2c)

# 実装

### 1.モデル

**①カテゴリーモデル・テーブルを作成**

元記事を表示

Rails paginationを実装する

#paginationを実装する

kaminari使ってpaginationを実装します。
gemfile にkaminariを加えてインストールします

その後kaminariの設定ファイル、テンプレートを作成します。

“`terminal
$ bin/rails g kaminari:config
$ bin/rails g kaminari:views default
“`

これで設定ファイルができました。
設定ファイルを覗いてみましょう

いくつか書いてありますが、
config.default_per_pageで一ページあたりの件数を設定できます。

“`kaminari_config.rb
Kaminari.configure do |config|
# config.default_per_page = 25
# config.max_per_page = nil
# config.window = 4
# config.outer_window = 0
# config.left = 0
# config.right = 0
#

元記事を表示

docker-compose run web rails new . –force –no-deps –database=mysql –skip-test –webpackerでエラーが出た

#docker-compose run web rails new . –force –no-deps –database=mysql –skip-test –webpackerでエラーが出たが、解決できたので今後のために備忘録。

##参考URL
https://qiita.com/nsy_13/items/9fbc929f173984c30b5d

##登場ファイル

“`Dockerfile.
FROM ruby:2.6

# install package to docker container
RUN apt-get update -qq && apt-get install -y build-essential libpq-dev \
&& apt-get install apt-transport-https \
&& curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add – \
&& echo “deb https://dl.yarnpkg.com/

元記事を表示

qiitaなどに実装されているスマホ用検索ボックスをhtmlとcssだけで作る。

今回はqiitaのスマホ版に実装されているタップすると検索フィールドが出てくるやつを作ろうと思います。ハンバーガーメニューの作り方を応用して作りました。ハンバーガーメニューの作り方は以下を参考にしました。

[CSSだけで簡単!ハンバーガーメニューの作り方(スマホ対応)](https://saruwakakun.com/html-css/reference/nav-drawer)

完成図
![タイトルなし.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480294/a2529f48-d697-22f7-9cc4-dd2a23abf4d2.png)

![2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480294/b2d7b126-83de-11d7-b3ce-ddc813915755.png)

##プチ宣伝
[公開日記](https://public-diary.herokuapp.com/)というwe

元記事を表示

【注文機能】rails 注文機能実装 確認画面も作成します〜

##【ゴール】
モデルの情報を検索できる検索窓の作成

##【メリット】
■ UXの向上
■ MVC理解度向上

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

##【実装】

####アプリケーション作成
※前回の「form_with」の反復練習も込めて「scaffold」封印。
※モデル、コントローラーは指定して作成しておく

“`mac.terminal
$ rails new search
$ rails g model Item name:string text:text price:integer
$ rails g controller items
$ rails g model Order quantity:integer amount:integer item:references
$ rails g conrtroller orders show confirm
$ rails db:migrate
“`

#### モデルを編集

元記事を表示

RailsAdmin設定ファイル変更後に自動再読み込み 

## 概要
`rails_admin` の設定ファイル `rails_admin.rb` を編集すると自動で `rails_admin.rb` を再読み込みし、変更を反映させる。

## 環境
– `Rails (5.1.5)`
– `rails_admin (1.3.0)`

## 方法
`config/initializers/rails_admin_reload.rb` に以下のファイルを追加

“`ruby
# See also: https://github.com/sferik/rails_admin/wiki/How-to:-Reloading-RailsAdmin-Config-Automatically#alternative-method-for-the-railsadmin-versions-that-does-not-extend-applicationcontroller
Rails.application.config.to_prepare do
RailsAdmin::ApplicationController.class_eval do

元記事を表示

11.2 アカウント有効化のメール送信: Railsチュートリアル備忘録 – 第11章

## 11.2 アカウント有効化のメール送信

### 11.2.1 送信メールのテンプレート

`rails generate`でメイラーを生成可能
(`password_reset`はあとで使う)

“`
$ rails generate mailer UserMailer account_activation password_reset
“`

生成物が以下

“`
create app/mailers/user_mailer.rb # ここにアクションのようなものを定義する
invoke erb
create app/views/user_mailer
create app/views/user_mailer/account_activation.text.erb # メールのレイアウト(テキスト)
create app/views/user_mailer/account_activation.html.erb # メールのレイアウト(html)
“`

レイアウトにはERBが使える

元記事を表示

OTHERカテゴリの最新記事