Ruby関連のことを調べてみた2020年02月01日

Ruby関連のことを調べてみた2020年02月01日

名前付きルートの書き方が分からないとき

# 名前付きルートとは?
名前付きルートとは_pathや_urlなどを使ってリンク先のURLを指定するヘルパーです。

#名前付きルートの書き方が分からない
名前付きルートの書き方が分からないときは**rails routes**コマンドを使いましょう。
例(railsチュートリアルから引用)

“`
$ rails routes

Prefix Verb URI Pattern Controller#Action
root GET / static_pages#home
login GET /login(.:format) sessions#new
POST /login(.:format) sessions#create
logout DELETE /logout(.:format) sessions#destroy
users GET /users(.:format)

元記事を表示

Ruby コーティング規約について レイアウト編 2

# はじめに
Rubyの基礎を学習中の方に向けて記載致します。
私自身これからチーム開発を行う上で大事にしたい。知っておきたいことをOutputします。

#レイアウトについて
① クラス、メソッドの本文の前後には、空行を用いない。

“`qiita.rb
#悪い例
class Dog

def dog

do_something do

something

end

end

end

# 良い例
class Dog
def dog
do_something do
something
end
end
end
“`

②メソッド呼び出しの最後の引数のコンマはしない。

“`ruby:qiita.rb
# 悪い例
some_method(
punch,
kick,
jump,
)

# 悪い例
some_method(punch, kick, jump, )

# 良い例
some_method(punch, kick, jump)
“`

#さいごに
毎日更新します。
皆様の復習等にご活用頂け

元記事を表示

シンプルでやさしいチートシート 【Rails Migration編】

## はじめに
毎回ググってる気がするので、まとめました。
右側の目次からお探しの用語やコマンドをクリックしてお使いください:slight_smile:

## 対象となる読者
* マイグレーションに苦手意識のある初心者の方
* 復習も兼ねて基本操作を中心におさらいしたい経験者の方
* マイグレーション関連でハマりたくない方

###テーブルを作る
modelを作成すると/db/migrate/ 以下にマイグレーションファイルも一緒に作成されます。
この場合クラス名は`User`、`name`,`email`という属性にデータタイプ(型)として`string`を指定しています。

“`ruby

$ rails g model User name:string email:string
invoke active_record
create db/migrate/20200130031151_create_users.rb ← マイグレーションファイル
create app/models/user.rb
invoke test_unit

元記事を表示

【超初心者向け】RubyonRailsの共同開発のスタートで詰まったポイント(bundlerとrubyのバージョン設定に関して)

# はじめに
Ruby on Railsの共同開発に参加したところ、作業に取り掛かる前段階で、独りでローカルで開発するときとは違うエラーが出たので、解決までの一連の流れまとめました。(注:実務ではありません)
具体的にはリモートリポジトリをクローンして`$ bundle exec rails g controller`を実行するところまでの解説になります。

# ローカルの開発環境
mac OS Catalina
Rails バージョン:5.2.4.1
Ruby バージョン:2.6.3

# 共同開発プロジェクトの環境
Rails バージョン:5.2.4.1
Ruby バージョン:2.6.5

# エラー発生から解決まで

### bundlerに関するエラー発生

共同開発者のgithubからproject(仮名)リポジトリをローカルへクローン。僕の場合デスクトップへ

“`terminal
$ git clone “リモートリポジトリprojectのurl”
“`

作業用ブランチを作成し、移動後以下のコマンドで第一エラー発生

“`terminal
$ rails g co

元記事を表示

Ruby_on_Rails 複数画像投稿(10個のinputとプレビュー)new edit(新規、編集、削除)

## あなた、複数画像で困っていませんか?

noteで有料化しようと考えていましたが、他国のエンジニアのレベルが鬼高いということで公開したいと思います。

いいね!とフォローだけしてください

完全にオリジナルですが、考え方はあっているはず。

## 出品画面のHTML

“`haml:new.html.haml
.new-product
=render “./registrations/sub-header”
.main
.head
%h2 商品の情報を入力
= form_with model: @product, class: “form”, id: “product-form” do |f|
.form-image
.form-image__title
%label 出品画像
%span 必須
.form-image__text 最大10枚までアップロードできます
= f.fields_for :images

元記事を表示

Ruby 2.7 とRails 6.0.2.1でrailsコマンドをたたくとすごいwarningがでる

Ruby2.7とRails6.0.2.1とpostgres12.1でDBを作るために以下のコマンドをたたくとすごいwarningがでた(処理は完了している)のでwaringを表示しないようにしてみる。

“`console
$ bundle exec rails db:create
/.rbenv/gems/2.7.0/gems/actionpack-6.0.2.1/lib/action_dispatch/middleware/stack.rb:37: warning: Using the last argument as keyword parameters is deprecated; maybe ** should be added to the call
/.rbenv/gems/2.7.0/gems/actionpack-6.0.2.1/lib/action_dispatch/middleware/static.rb:110: warning: The called method `initialize’ is defined here
/.rbenv/gems/2.7.0

元記事を表示

rails_on_iis を Windows 10 で

# 概要

Ruby 素人が rails_on_iis を Windows 10 でやった際の、ハマり話です。

基本はこちら [Railsコラム – enjoy Railsway 第5回 「IIS 8+(HttpPlatformHandler)でRuby on Railsを実行」](https://www.transnet.ne.jp/2015/04/03/rails%E3%82%B3%E3%83%A9%E3%83%A0-coler-%E3%80%8Ciis-8httpplatformhandler%E3%81%A7ruby-on-rails/) を参照。

# ハマリポイント

## `C:\inetpub\wwwroot\rails_on_iis` へ書き込みできない場合

リクエストがクルクル回り続ける…

![2020-01-31_23h52_29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/364126/ea085b6e-72c5-7918-6448-3fe7863a6c4c.png)

元記事を表示

初めてのWebアプリ制作 – ruby on rails – 2日目

#2日目の成果
– サイトマップの作成
Image from Gyazo
– ワイヤーフレームの作成
Image from Gyazo
– データベース図の作成
RubyでPaizaの問題を解く時役立ちそうなヒント(?)

#概要
プログラミング学習の一環としてPaizaのスキルチェックを利用しているなかで、よく使用するが忘れがちなコードのメモ。
どんどん追加していきます。

#Arrayクラス
###値をスペース区切りで出力する

“`ruby:
puts array.join(” “)
“`
参考:[【Ruby】配列の要素を半角スペース区切りで出力する](https://qiita.com/hirym/items/a44aad56b680fb4fccde “【Ruby】配列の要素を半角スペース区切りで出力する”)

#Hashクラス
###valueの値で降順にソートする

“`ruby:
hash = hash.sort_by{|key,value| -value}
“`

#値の操作
###数値から文字列を取得

“`ruby:
数値.abs
“`

参考: [Rubyで数値から絶対値を求める方法【初心者向け】](https://techacademy.jp/magazine/19246″Rubyで数値から絶対値を求める方法【初心者向け】”)

###数値を文字列に変換

“`ru

元記事を表示

Rubyのクラッシュ(??)

# 起きたこと
### サンプルアプリケーションをクローン
ターミナル

“`
$ git clone https://github.com/queq1890/exception_sample.git
“`
### gemの導入
ターミナル

“`
$ cd exception_sample
$ rm Gemfile.lock #bunlderのバージョンが古い可能性があるため、一度Gemfile.lokを削除しておきます
$ bundle install
“`
### データベースの設定(ここでエラーが出ました)
ターミナル

“`
# データベースの作成
$ rails db:create #ここでエラーが起きた
# マイグレーションの実行
$ rails db:migrate
# 初期データの投入
$ rails db:seed
“`

*※データベースの作成でエラーが起きました*

#解決策
brew list で確認したところ*mysql*が2つ存在していた為、mysqlを2つuninstallしました。(画像だと1つです。)
![image.png](h

元記事を表示

Ruby学習メモ

インスタンス変数
オブジェクトが持つ属性を定義する変数で定義すると全てのオブジェクトが同じ属性を持つ。
変数名のはじめに@をひとつつけて定義する

class クラス名
 def メソッド名
  @変数名 = 値 ←インスタンス変数
 end
end

クラスメソッド
クラスが使用できるメソッド。定義したクラス自身が使用できる。
クラスで共通の情報を使った処理に使用
メソッドの前に.でつないで定義する

class クラス名
 def self.メソッド名
  #処理
 end
end

クラス変数
クラス全体で使用出来る変数。クラスを通して値が共通になる情報に使用。
クラス、インスタンス両方にて使用可能。
インスタンスをどれだけ生成しても初期化されない

class クラス名
  @@変数名 = 値
end

復習した一部でした。
メモがわりに分からなくなったら戻ってこよう。

元記事を表示

deviseとOmniAuthをRailsアプリケーションに導入しテストする

Ruby on Rails のアプリケーションに、 devise を利用して認証機能を実装し、更に Google アカウントに連携した認証機能とテストコードを実装します。よくありがちなユーザー認証機能をdeviseを使いサクッと実装し、Googleを使ったSNS認証機能とテストコードを実装する方法について解説していきます。

## 動作環境
– PostgreSQL 12.1
– macOS Catalina
– Ruby 2.7.0
– Rails 6.0.7.2

## 全体の概要
本記事では、3つのステップで進めていきます。
1. devise でサインイン機能を実装する
2. OmniAuth で Google アカウント機能を実装する
3. Omniauth のテストコードを実装する

## 1. deviseでサインイン機能を実装する
まずは、devise でサインイン機能を実装し、deviseとはどのような機能を持つGem(ライブラリ)なのかを掴みましょう。

本項は下記を参考にしました。

– [Railsでユーザー認証機能を実装しよう~定番のgem「devise」活用

元記事を表示

RailsアプリをAWSにデプロイしようとして、追加で行ったこと

#はじめに
Railsで作ったアプリをAWSにデプロイしようとして、下記Qiitaを参考に、デプロイしようとしました。
[(デプロイ編②)世界一丁寧なAWS解説。EC2を利用して、RailsアプリをAWSにあげるまで](https://qiita.com/naoki_mochizuki/items/5a1757d222806cbe0cd1)

手順通りに実施した後に、個人的に追加して実施した内容をまとめようと思います。
同じような点で困っている人のお役に立てれば幸いです。

#環境変数の設定
アプリケーション作成中は.envに記載していた環境変数は、本番環境では、別で設定する必要があります。

“`
[akinori|~] vi .bash_profile

——————————-
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi

# User specific environment and s

元記事を表示

rbenvで最新のrubyを取得できるようにする

rubyの最新を取得しようとして

“`shell
$ rbenv install –list
“`

をたたいたものの最新バージョンがでてこなかったのでrbenvをupgradeした。

## rbenvをupgradeする

まずはおなじみ

“`shell
$ brew update
“`

upgradeする

“`shell
$ brew upgrade ruby-build
“`

実行すると以下のエラーになる

“`shell:実行結果
==> Summary
? /usr/local/Cellar/readline/8.0.1: 48 files, 1.5MB
==> Installing ruby-build
xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
Error: An exception o

元記事を表示

Ruby 正規表現について 1

#はじめに
正義表現を学んでいく上で、1つずつ整理していきます。
私はVScodeで記載し、ターミナルで実行するやり方で実践しております。
もうすでにご存知の方、省略の仕方等ご存知でしたら、ご教授願います。

#気をつけること
正規表現のコードを書く際に気を付けることは【1つずつ順番に解決していく意識】と思います。
(今となっては、当たり前かと思いますが・・・)
私がしてしまったミスは、複数の正規表現を1度に解決してしまおうとし、パニックになりました。
ですので、これから正規表現を学習する方は落ち着いて1つずつ解決していきましょう。

#正規表現の種類
今回は以下3つのメソッドを学びました。

① subメソッド
② splitメソッド
③ matchメソッド

#subメソッド

置換したい文字列1つを別の文字列に置換したい時に使うメソッドです。

“`qiita.rb
#使用するメソッド
.sub(/置換する前の文字列/,”置換したい文字列”)

#実践してみます。

#現在のコード
action = “らいが君が寝る。”
puts action

#らいが君の部分だけ違う文字

元記事を表示

Ruby コーティング規約について レイアウト編 1

# はじめに
Rubyの基礎を学習中の方に向けて記載致します。
私自身これからチーム開発を行う上で大事にしたい。知っておきたいことをOutputします。

#レイアウトについて
①インデント(空白)にはスペース2つを意識する。

“`ruby:qiita.rb
#悪い例
def dog
puts “かわいい” #スペース4つ
end
dog

#良い例
def dog
puts “かわいい” #スペース2つ
end
dog
“`

②式の区切りに;を使わない。1行につき式1を意識する。

“`ruby:qiita.rb
# 悪い例
puts “dog”; #余分なセミコロン
puts “dog” ; puts “cat” # 2つの式が1行にある

# 良い例
puts “dog” #セミコロンを削除

puts “dog” #2つの式を2行に分けた + セミコロン削除
puts “cat”
“`

#さいごに
毎日更新します。
皆様の復習等にご活用頂けますと幸いです。

元記事を表示

【Chart.js】Railsでレーダーチャートを簡易表示するまで

自己学習目的としてChart.jsで簡易表示するまでをまとめてみます。

#Chart.jsとは
無料のオープンソースJavaScriptライブラリ。
主にバー、ライン、エリア、パイ、バブル、レーダー、ポーラー、散布図の8つを動きをつけてCanvas で描画表示できるもの。

公式サイトのリンク
https://www.chartjs.org/

#環境
OS: Catalina v10.15.3
Ruby: v2.6.3
Rails: v5.2.4.1

#手順

1. 新規プロジェクトの作成
2. ディレクトリ移動
3. DB作成

“`
$ rails _5.2.4_ new chart_sample_app
$ cd chart_sample_app
$ bundle exec rake db:create
“`

エディタから`Gemfile`を開き、`Chart.js`のgemを追加する。

“`ruby:Gemfile

# Reduces boot times through caching; required in config/boot.rb
gem ‘

元記事を表示

gem  “gon” を利用した時に、他のJSが効かなくなる

#現状、背景
フリマアプリの出品した商品を編集する機能を実装していて、ここでは gem “gon” を使用して、出品した写真のデータ等を追加、削除できる機能実装したところ、

他の機能(商品出品、メインページにかけてるJS等)で、JSを使用したところが効かなくなるエラーが出てしまっている状況です。
##エラー内容
 他のJavascriptが効かなくなっている!!

## 該当コード

###items.controller
“`ruby

def update
@item = Item.find(params[:id])
@images = @item.images

ids = @item.images.map{|image| image.id }

exist_ids = registered_images_params[:ids].map(&:to_i)

exist_ids.clear if exist_ids[0] == 0

if (exist_ids.length != 0 || new_image_params[:im

元記事を表示

Ruby: メソッド間での引数の受け渡し

Ruby: メソッド間での引数の受け渡し。
忘れないようにメモ。
メソッドは呼び出されるまで動かない受け身な子。

def register_data(data)
puts ‘名前を入力してください’
name = gets.chomp
puts ‘年齢を入力してください’
age = gets.chomp
puts ‘身長を入力してください(m単位)’
tall = gets.to_f
puts ‘体重を入力してください’
weight = gets.to_f
person = { name: name, age: age, tall: tall, weight: weight, bmi: **calculate_bmi(tall, weight)**}
data << person end def **calculate_bmi(tall, weight)** bmi = weight / tall / tall end

元記事を表示

Ruby インストール時の rdoc エラー[CentOS]

##CentOSでRubyインストール時に[rdoc]エラー
####AWS Lightsail CentOSで発生
$ sudo rbenv install 2.6.3
→ make: *** [rdoc] Killed

下記のように変更すればインストールされました
$ sudo RUBY_CONFIGURE_OPTS=–disable-install-doc rbenv install 2.6.3

参考:
https://github.com/rbenv/ruby-build/issues/156#issuecomment-54922357

元記事を表示

OTHERカテゴリの最新記事