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

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

Railsを使ったToDoリストの作成(7.CRUDのDelete機能)

#概要
本記事は、初学者がRailsを使ってToDoリストを作成する過程を記したものです。
私と同じく初学者の方で、Railsのアウトプット段階でつまづいている方に向けて基礎の基礎を押さえた解説をしております。
抜け漏れや説明不足など多々あるとは思いますが、読んでくださった方にとって少しでも役に立つ記事であれば幸いです。

#環境
* `Homebrew: 2.5.10` -> MacOSのパッケージ管理ツール
* `ruby: 2.6.5p114` -> Ruby
* `Rails: 6.0.3.4` -> Rails
* `node: 14.3.0` -> Node.js
* `yarn: 1.22.10` -> JSのパッケージ管理ツール
* `Bundler: 2.1.4` -> gemのバージョン管理ツール

“`:iTerm
$ brew -v => Homebrew 2.5.10
$ ruby -v => ruby 2.6.5p114
$ rails -v => Rails 6.0.3.4
$ npm version => node: ‘14.3.0’
$ yarn –

元記事を表示

Railsを使ったToDoリストの作成(6.CRUDのUpdate機能)

#概要
本記事は、初学者がRailsを使ってToDoリストを作成する過程を記したものです。
私と同じく初学者の方で、Railsのアウトプット段階でつまづいている方に向けて基礎の基礎を押さえた解説をしております。
抜け漏れや説明不足など多々あるとは思いますが、読んでくださった方にとって少しでも役に立つ記事であれば幸いです。

#環境
* `Homebrew: 2.5.10` -> MacOSのパッケージ管理ツール
* `ruby: 2.6.5p114` -> Ruby
* `Rails: 6.0.3.4` -> Rails
* `node: 14.3.0` -> Node.js
* `yarn: 1.22.10` -> JSのパッケージ管理ツール
* `Bundler: 2.1.4` -> gemのバージョン管理ツール

“`:iTerm
$ brew -v => Homebrew 2.5.10
$ ruby -v => ruby 2.6.5p114
$ rails -v => Rails 6.0.3.4
$ npm version => node: ‘14.3.0’
$ yarn –

元記事を表示

[Rails]hidden_fieldとhidden_field_tagの違いについて![初心者]

#どういう時に使用するの?
“form_with“や“form_for“を利用して、ユーザーに何かを打ち込んでもらい、送信してもらいたい時に便利なメソッドです。

例えば、AmazonのようなECサイトで、ショッピングカートの商品を購入するとき。
ユーザーからすると、「確定ボタン」だけ押したいのに、再度“username“や“address“を打たなければならないのは面倒ですよね。
また、パラメーターを経由したいけれども、ユーザー側にその情報を隠しておきたい時などにも使えます。

#使い方
““ruby:hidden_field
hidden_field :値の取得時に使用する名前(シンボル), :value => 実際に渡す値
#第一引数→name属性 #第二引数→value属性
““

アクションで“hidden_field“で渡されたパラメータを受け取ることが出来ます。
ここで、controllerに記述する際に、フォームフィールドに紐づく値となっている為、記述方法は
“par

元記事を表示

ヘッダーが日本語の巨大CSVを取り込んでみる

CSVファイルの取り込みが必要とする場面はかなり頻繁に出ていると思います。しかし数百メガ以上ファイルサイズだとサーバーの処理に影響出かねなません。そして取り込まれるファイルのヘッダーが日本語だと、実装のハードルが格段上がると思います。

# TL;DR

Demo用のRuby fileは下記のURLで見れます。
https://gist.github.com/jerrywdlee/55ba403f02651afc67dbda8185329780

“`rb
# まずは日本語ヘッダーを英語に転換するlambdaを作成
headers_jp = %w[ID 名前 フリガナ 年齢 血液型 都道府県 携帯キャリア]
headers_en = %w[id name kana age blood state carrier]
headers_dict = headers_jp.zip(headers_en).to_h
converter = lambda { |h| headers_dict[h] }

# CSV.foreacで1行ずつ取り込む
CSV.foreach(path, header

元記事を表示

AWS Railsの再起動手順

この度Railsで開発中のアプリをAWSへ開発中アプリをデプロイしましたが、
今後本番環境のサーバー再起動を行う頻度は高いだろうと思い
備忘録としてUnicornの再起動手順をまとめていきたいと思います。

EC2インスタンスにログインしている前提で進めていきます。

まずは ps aux | grep unicorn コマンドでプロセスIDを確認します。

“`ruby:ターミナル
[ec2-user@ip-172-31-33-238 <対象リポジトリ>]$ ps aux | grep unicorn
ec2-user 26995 17.4 10.7 475732 108272 ? Sl 13:55 0:01 unicorn_rails master -c config/unicorn.rb -E production -D
ec2-user 26999 0.0 10.0 476748 101508 ? Sl 13:55 0:00 unicorn_rails worker[0] -c config/unicorn.rb -E produc

元記事を表示

Rails新規アプリケーションの作り方

## GitHubでリポジトリつくる
![Screen Shot 2020-11-20 at 21.55.27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/174291/8839eb18-c4a1-3ac3-c2c8-c021ea972b61.png)

## localにcloneしてくる

“`
$ git clone https://github.com/k-tetsuhiro/rails_docker_sample_3.git
& cd rails_docker_sample_3
“`

## bundleを初期化する
“`
$ bundle init
Writing new Gemfile to /Users/kakuno/sandbox/rails_docker_sample_3/Gemfile
“`

## Gemfileができているので編集する

“`
$ vi Gemfile
“`

“`file:Gemfile
# frozen_string_literal: tr

元記事を表示

Railsを使ったToDoリストの作成(5.CRUDのCreate機能)

#概要
本記事は、初学者がRailsを使ってToDoリストを作成する過程を記したものです。
私と同じく初学者の方で、Railsのアウトプット段階でつまづいている方に向けて基礎の基礎を押さえた解説をしております。
抜け漏れや説明不足など多々あるとは思いますが、読んでくださった方にとって少しでも役に立つ記事であれば幸いです。

#環境
* `Homebrew: 2.5.10` -> MacOSのパッケージ管理ツール
* `ruby: 2.6.5p114` -> Ruby
* `Rails: 6.0.3.4` -> Rails
* `node: 14.3.0` -> Node.js
* `yarn: 1.22.10` -> JSのパッケージ管理ツール
* `Bundler: 2.1.4` -> gemのバージョン管理ツール

“`:iTerm
$ brew -v => Homebrew 2.5.10
$ ruby -v => ruby 2.6.5p114
$ rails -v => Rails 6.0.3.4
$ npm version => node: ‘14.3.0’
$ yarn –

元記事を表示

RailsのDocker化 〜その2〜

## とりあえず、Railsアプリケーションを動かしてみる
まずは、どういうところに環境依存があるのか、また何がめんどくさかったのか思い出すために、
Railsアプリケーションをcloneしてlocal環境で動かすところまでやってみましょう。

■sample project
`https://github.com/k-tetsuhiro/rails_docker_sample`

こちらは`ruby 2.7.2`と `Rails 6.0.3.4` で作成されたsampleアプリです。
これを好きなところにgit cloneしてみてください。
これを `bundle exec rails s` で動かせるところまで持っていってみてください!
動かすまでに様々な問題点が出てくると思います。

## 出てくる問題点

まずはlocalのRubyのバージョンに2.7.2が入っているでしょうか?
rbenvを使用してる場合 `rbenv versions` で確認できます。

“`
$ rbenv versions
system
2.3.8
2.6.3
2.6.5
2

元記事を表示

form_withについての周辺知識

#はじめに
脱初心者にむけてアウトプットをしていこうと思って記事を書いております。
間違ったことがありましたら、ぜひコメントいただけると幸いです。

##form_withとは何か
form_withとはブラウザにデータのリソースの入力や
編集を行うフォームを生成するために使用される。
(Railsで何かしらに情報を送信したい時に使うメソッド)という理解で大丈夫だと思います。

“`
<%= form_with(モデル or URLベース,[スコープ],[オプション]) do |f| %>
フォームの内容
<% end %>
“`

##form_forとform_tagについて
これらのヘルパーメソッドはRails5.1で導入されたform_withが導入されたことによって非推奨となりました。
(form_withはこれらの機能をまとめたもの)という理解で大丈夫です。
form_withを理解するためにはこれらのヘルパーメソッドを理解するにはこれらを知ることでさらに理解を深めることができます。

## form_for
“`
<%= form_for(モデル,[オプション

元記事を表示

syntax error, unexpected end-of-input, expecting end について

#はじめに
初学者のアウトプットです。
訂正、追記等あればご教示いただけると幸いです。

#エラー文章
エラー文章が発生しては、長くて読む気が無くなりそうですが、
大抵の内容は、エラーが発生しているアドレスを示してくれており、
“`SyntaxError: /アドレス/.../: エラー内容
“`
みたいな感じになっています。
結局、アドレスのエラー内容を修正すればエラーは解決するので、
現段階では、学習の為にもエラー内容部分を翻訳してエラー修正にするのが一番だなと感じています。

#syntax error, unexpected end-of-input, expecting end
表題のようなエラーが出ました。

翻訳 → 構文が誤っています、予期していない終わり方です、endを追加すると良いと思われます。

見直してみると構文に“end“が足りていませんでした。
“end“を追加してエラー解消です。
#まとめ
複雑になればなるほど発生しそうなエラーです。
こんなのは体で覚えてしまってすぐ対処出来るようになりたいです。

元記事を表示

【Rails5】check_boxで任意の文字列を渡す方法(ガチ初学者向け)

初投稿です。
初学者のため、参考程度に見ていただければ幸いです。

至らない点、わかりにくい点などあればコメントで教えていただければ幸いです。

#version
Ruby 2.5.7
Rails 5.2.4.4

#How to
まずチェックボックスフォーム機能を実装する際に、デファルトだとか機能ようなコードになると思います。(form_withを使う場合)

“`
<%= form_with model: 変数, url:遷移先のパス do |f| %>
<%= f.check_box :カラム名,{オプション(クラス名など} %> ←チェックボックスを表示
<%= f.submit %>
<% end %>
“`

このようにするとデフォルトで`”1″か”0″`が送られます。

“`
<%= form_with model: 変数, url:遷移先のパス do |f| %>
<%= f.check_box :カラム名, {オプション(クラス名など}, "true","fales" %> ←チェックボックスを表示
<%= f.submit %>
<%

元記事を表示

[Rails]selfについての理解を深めたい[初心者]

#はじめに
プログラミングの超初心者です。
“self“への理解が全然できていないと感じたので、アウトプットも兼ねて、学んだことをまとめます!
それではいきましょう!!

#selfって何のこと?
“オブジェクトそのものを指す特殊な変数“です。

と、説明だけでは非常に分かりにくいですよね。
一緒に、どのように使用されているのか、確認していきましょう。

#使用例

“`ruby:book.rb
class Book < ActiveRecord::Base def hoge #インスタントメソッド end def self.hoge #クラスメソッド end def author #インスタントメソッド self.hoge #インスタンスメソッドのhogeが呼ばれる hoge #インスタンスメソッドのhogeが呼ばれる self.class.hoge end def self

元記事を表示

enumを使用して投稿の公開設定をする(二択式)

# はじめに
## やりたいこと
– 投稿機能に公開ステータスを持たせる
– デフォルトは非公開にする
– 公開設定をセレクトボタンで選択させる

## やってみて
enum自体は非常に奥が深いモジュールだと感じましたが、私がやりたいことは簡単に実装できました。
ですので、この投稿は初心者でもすぐに実践できる内容になっていると思います。

## 参考
[Rails公式リファレンス](https://api.rubyonrails.org/v5.2.3/classes/ActiveRecord/Enum.html)
[Pikawaka <【Rails】enumチュートリアル](https://pikawaka.com/rails/enum) # 手順 ## DB設計 ```ruby:db/migrate/create_item.rb class CreateItems < ActiveRecord::Migration[6.0] def change create_table :items do |t| t.string :title, nul

元記事を表示

【Rails】ジャンル&商品名の検索機能実装

#前提
ジャンルの一覧表示の中で検索したいジャンルをクリック or 検索フォームに商品名を打ち込んで「検索」ボタンをクリックすることで、searchアクションを実行します。ジャンルor商品名の検索結果を遷移後のsearch.html.erbで表示するような機能を実装していきます。検索結果画面には、該当する商品のレコード内容(商品写真や商品名など)をeach文で表示する形になります。モデル同士のアソシエーションなどの部分は省いていきます。
通常の検索機能の実装がしたい方は[こちらを参考にしてください(gemなし複数モデル対象の検索機能)]
(https://qiita.com/IsakiMatsuo/items/69f406d85dbd0ba62625)

#####実装の条件、太文字は必須のカラムです(カラム名は違くても問題ありません、デフォルトでつくidカラムは一応記述しました)
・genresテーブル(PK:**id**、ジャンル名:**name**、ジャンル有効or無効:is_active(boolean))
・itemsテーブル(PK:**id**、ジャンルのid(FK):**

元記事を表示

【Ruby】バイナリーサーチを用いた配列内の要素検索

配列内に任意の値が存在するかを確認するプログラムを作成します。
任意の値が配列内に存在しない場合は、「値は配列内に存在しません」と表示し、存在する場合は、配列の何番目にあるかを表示します。

今回のプログラムではバイナリーサーチという、配列を2分割した検索方法を用います。
例えば以下のような配列がある場合、中央値である「3」から左右と比較して検索する手法です。
これにより検索したい値が「1」であった場合、「4,5」は比較を行わないため処理速度の向上につながります。

“`java:ruby
array = [1, 2, 3, 4, 5]
“`

## 回答例

“`java:ruby
def binary_search(array, number_of_elements, target)
left = 0 //配列の先頭の番号
right = number_of_elements – 1 //配列の末尾の番号
while left <= right //配列番号が逆転するまで繰り返し cente

元記事を表示

自走力に必要なもの?

私の結論は楽しみながら学習することです。
なぜなら、嫌々でプログラミングをしても挫折してしまうからです。

#スクール2週間目に突入して…
スクールのカリキュラムを2週間終え感じたことは、「事前に勉強していて良かった…」
スクールでの受講を悩んでいる方や、これから受講するって方は”未経験からエンジニアへ”という謳い文句を勘違いして知識ゼロで臨むとなかなか苦労すると思いました。実際に自分の所属している6人のグループではProgateで事前学習していたのは自分だけでした。

私の場合は、ブラインドタッチがあまり出来ず、苦労したのでタイピング練習をもっとすべきだったなと反省をしています。また、カリキュラムの進行はスピーディで、合間にある中間試験など理解度を高めながら、スピード感を持ってカリキュラムを進めるのに、不安と焦りを感じながら学習を続けています。

#転職活動の心構え :beginner:
一度でも内容に触れたことがあれば記憶の定着もしやすいですし、理解度も増します。そして、気持ちにも余裕が生まれます。

この点は、転職活動においても言えます。内定をもらって終わり!ではなく、やっと

元記事を表示

個人アプリ開発日記  #1

:point_up:
初めましてHarasouです。これから個人アプリを開発するのでその進捗を更新指定いきたいと思います、、!

◎ポートフォリオ概要
■何を作るか
コーヒーの感想をみんなとシェアできて、コーヒーを購入できるアプリ

■なぜ作ろうと思ったか
コーヒーが大好きで、みんなのおすすめのコーヒーを
知りたかったけど、日本にコーヒー専用アプリみたいなのはなかった

スタバはみんな知ってるのに,スタバのサービスのコーヒーパスポートはみんな知らない

スタバには「コーヒーパスポート」と言う、コーヒーの記録を取れる手帳が実はあるんです、、、!

個人アプリ開発日記 #3

# まずはuserリソースから

ユーザー登録機能
ログイン機能
ユーザー詳細表示機能
ユーザー編集機能
ユーザー削除機能

を実装していきます!

## users_controller の実装

“`Ruby
class UsersController < ApplicationController include SessionsHelper before_action :set_user, only: [:show,:edit,:update,:correct_user] before_action :logged_in_user, only: [:index,:edit,:update] before_action :correct_user, only: [:edit, :update] def index @users = User.all end def new @user = User.new end def create @user = User.new(user_params) if @u

元記事を表示

個人アプリ開発日記 #2

# 基本的なテーブル構造

## users テーブル

| Column | Type | Options |
| —————- | —— | ————————- |
| nickname | string | null: false |
| email | string | null: false, unique: true |
|password_digest | string | null: false |
| remember_digest | string | |
| reset_digest | string | |
| activation_digest | string | null: false |
| activated | boolean

元記事を表示

初心者はDeviseをカスタマイズするなという話

#Deviseを実装したら迷走した
Deviseのことをよくわかっておらず、Contorollerやviewから全部作って設定しようとしてたので、戒めとして記事を書きます。
#ControllerとViewは最初からある
Ruby初心者の私はこんなことも直感的に分からなかったんですね。

https://qiita.com/hakatatech/items/f991d54ff527edb844d9

この辺りの記事をみて「はえ〜コマンドでコントローラー作るんだなあ」とコピペで実装していきましたが、最初からあるのでこういうのは実装しなくてOKです。
#それでも最初はコマンドを打たねばならない
まあgemファイル追加して必要なものは設定しないといけないので、こちらの記事を参考に実装してみてください。

実際に3日悩んだ結果、ここが一番簡潔で明快でした。

https://qiita.com/salvage0707/items/d3ddc889458ac186e62e

もう初心者はここの「Deviseの使い方」だけやってればいいと思いました。

#email認証じゃなくしたいんですけど?

元記事を表示

OTHERカテゴリの最新記事