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

Ruby関連のことを調べてみた2020年03月07日
目次

【Application Error】Herokuでアプリをリリースしたらエラーが出た件 #1(備忘録)

# 【Application Error】Herokuでアプリをリリースしたらエラーが出た件(備忘録)

“`terminal:terminal
> git push heroku master
“`
を打ち、Deploye… doneと出るにも関わらず、
アプリのURLを叩いても、Application Errorとでる!
やってらんない!

上記のコマンドを打った際に、複数あるWaringの中に以下のようなことが記載

“`terminal:terminal
You have the `.bundle/config` file checked into your repository
It contains local state like the location of the installed bundle
as well as configured git local gems, and other settings that should
not be shared between multiple checkouts of a single repo. Ple

元記事を表示

ActiveAdmin の グローバルメニューの変更方法について軽く調べた

## はじめに

ActiveAdmin のヘッダーメニューのカスタマイズで、ラベルの変更方法について調べてみました。

## ヘッダーメニューのラベルの変更方法

[ActiveAdmin のドキュメント](https://activeadmin.info/2-resource-customization.html#customize-the-menu) に書いてありますが、ActiveAdmin の `register` ブロックの中で、`menu` メソッドの `label` オプションに文字列を渡すことで設定できます。

“`ruby
ActiveAdmin.register User do
menu label: ‘Something’
end
“`

## I18n やモデルのメソッドも指定できる

以下のように、メソッドを渡して
メソッドの戻り値は String とします。

“`ruby
ActiveAdmin.register User do
menu label: ->{ User.something_label }
end
“`

## proc

元記事を表示

【Heroku】リリース後、アプリのアップデートをHeroku上アプリに反映させる

# リリース後、アプリのアップデートをHeroku上アプリに反映させる

# 1.変更をステージングする

“`terminal:terminal
> git add -A #-A は変更を加えた全ての変更をステージングさせる
もしくは、
> git add 特定のファイル名
“`

# 2.ステージングした変更をコミットする

“`terminal:terminal
> git commit -m “コメント”
“`

# 1.コミットした変更をHeroku上のアプリにPushする

“`terminal:terminal
> git push heroku master # ←ブランチ名をば
“`

3ステップでできる!
素晴らしい!?

元記事を表示

【Ruby on Rails】stripeの一番簡単な決済機能Checkoutを試してみた。

#はじめに
初心者な私が、stripeAPIによる決済機能をアプリケーションに実装するにあたり、
仕様を理解しきれないまま手を動かしたら、いろいろな実装方法がある事に翻弄され多大に時間を無駄にしたので、とにかくシンプルに簡単な実装方法であるCheckoutから試してみる事にしました。

Qiitaに記事を投稿するのは初めてなので、いろいろお見苦しいとは思いますが、
もし参考にしていただけるようでしたら、みてやってください。

#公式チュートリアル
https://stripe.com/docs/legacy-checkout/rails
このチュートリアルでは簡単に「料金支払い」Charge の実装を試す事ができます。
ですが、商品購入など実践的な実装をする上では Charge は使わないと思いますので、
今回はスルーします。

#stripeのアカウント作成
https://qiita.com/Rafflesia/items/5ce936656c6f99c144ef
上記の記事が分かりやすくまとめられているので
####公開可能キー、シークレットキーの取得
までを参考にダッシュボード

元記事を表示

collection_selectにデフォルト値で空欄を設定する方法

環境 rails 5.2.3 ,ruby 2.5.1

# 先に結論から
include_blank: true
を付ける!

## 付け方(例)
`= i.collection_select :month_id, Month.all, :id, :name, include_blank: true`

## view画面では
スクリーンショット 2020-03-07 1.03.58.png
見事空欄が表示できた!

元記事を表示

作って学ぶPhoenix、Railsのアレどうやんの?随時更新

RailsチュートリアルをPhoenixで実装しています。 https://github.com/pojiro/sample_app
Phoenixではどうやるか?をまとめています。随時更新します。

※RailsはRailsチュートリアルでしかさわったことがありません。

# bundle install

~~~ sh
$ mix deps.get
~~~

# railsコマンド

## rails new

~~~ sh
$ mix phx.new
~~~

## rails console

~~~ sh
$ iex -S mix
~~~

## rails server

~~~ sh
$ mix phx.server
~~~

## rails db:create

~~~ sh
$ mix ecto.create
~~~

## rails db:migrate:reset & rails db:seed

~~~ sh
$ mix ecto.reset # aliasなので、自身のプロジェクトのmix.exsのdeps aliasesを見ること
~~~

## r

元記事を表示

Railsという借り物マラソン大会を駆け抜ける

#はじめに
TECH CAMPというプログラミング教室に通っている添野といいます。
これはRails初心者に向けた記事です。

Railsエラー問題がある程度解けるようになってきて、
MVCもある程度理解できたけど、まだ何かしっくりこない部分がある。
そんなあなたの知識の穴を、今回説明する**2つの”公式”**で埋めていきます。

#2つの”公式”
結論を言います。Railsは下記の2つだけ理解すればOKです。

**1. Railsはマラソン大会**
**2. マラソンコースの指定方法を知る**

これだけです。これさえ分かってしまえば、**Rails初心者を卒業できます**。
以下、詳しく説明していきます。

#1. Railsはマラソン大会

下記の公式を覚えてください。

***公式1. コードは常に眠っていて、同時に1行までしか起きていられない***

私たちがRailsで書いてきた大量のコードたちは、
私たちが何かをしてあげない限り、**眠ったまま目を覚ましません**。

「リクエストを送る」の意味は、「**眠っているコードくんを叩き起こすこと**」だと思ってください。

元記事を表示

【Ruby】メソッド一覧

#はじめに
初学者が学習の為にRubyのメソッド(配列やハッシュに関係するメソッドを中心に)をまとめました。

##メソッド一覧
###keysメソッド
hashからkeyを取り出す

“`ruby
> x = { “ruby”=>1 , “php”=>2 , “java”=>3 }
=> {“ruby”=>1, “php”=>2, “java”=>3}
> x.keys
=> [“ruby”, “php”, “java”]
“`

###valuesメソッド
hashからkeyを取り出す

“`ruby
> x = { “ruby”=>1 , “php”=>2 , “java”=>3 }
=> {“ruby”=>1, “php”=>2, “java”=>3}
> x.values
=> [1, 2, 3]
“`

###storeメソッド
hashにkeyと値を追加する

“`ruby
> x = { “ruby”=>1 , “php”=>2 , “java”=>3 }
=> {“ruby”=>1, “php”=>2, “java”=>3}
> x.store(“pyth

元記事を表示

RubyXL シート名一覧の取得

リファレンスが読めない・・・
SheetNameクラスやSheetNamesクラスというものがあるが・・・

とりあえずこれで解決した。

“`rb
workbook = RubyXL::Parser.parse(“sample.xlsx”)
sheet_names = workbook.sheets.map(&:name)
“`

元記事を表示

【Rails】devise gemについて(開発/コマンド)

# 最初に
自身で学習してきた内容を書き出していきます。
基本的には自分自身でわかるような内容になりますので、ご容赦ください。
また、誤っている点がありましたら、コメントにてご指摘ください。

(要確認)マークがあるものは、「実行前に必ずググる」べき内容。

# ログイン機能をgemなしで実装するには
[【rails】deviseを使わずにログイン機能を実装する方法](https://qiita.com/kodaii/items/13b73cc687ee3b7db051)
基礎学習として、目を通しておくのが吉。

# index
– devise gemの運用方法
– deviseの導入
– 新規登録時、名前登録ができるように設定
– ログイン認証を「名前」と「パスワード」だけでログインできるように設定
– 新規登録時のバリデーションを組み、遷移先を指定する

# devise gemの運用方法
### 今回のゴール

– ログイン時に、**「名前」**と**「パスワード」**だけでログインできるようにする。
– 新規登録時は、「名前」、「メールアドレス」、

元記事を表示

今からエンジニアを目指すにはRubyよりPHPがおすすめ

#はじめに
私自身WEBエンジニアを目指してRuby/Ruby on Railsを勉強していました。しかし今からWEBアプリ開発エンジニアを目指すのであれば、PHPの方がおすすめです。今回はなぜRubyよりPHPの方がおすすめなのか理由を書きたいと思います。

#そもそもRuby/PHPとは?
Ruby
Ruby(ルビー)は、まつもとゆきひろ(通称: Matz)により開発されたオブジェクト指向スクリプト言語。開発者のまつもとゆきひろは、「Rubyの言語仕様策定において最も重視しているのはストレスなくプログラミングを楽しむことである (enjoy programming)」と述べている。
ただ個人的な話かもしれないがRubyを学ぶ場合、Ruby on Rails(実アプリケーションの開発の雛形を予め備えた仕組み=フレームワーク)を学ぶ必要があり、そのフレームワークが初心者には流れが理解しづらいと思う。あくまで楽しめるのは「プログラミング経験のある開発者/エンジニア」であり、初学者は楽しめる領域まで勉強する必要がある。

PHP
名称の PHP は再帰的頭字語として、 “PHP: Hype

元記事を表示

備忘録(TX46)レンダーメソット

<%= link_to 'Post', posts_path %>

<%= render @posts %>

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

>

<%= truncate(post.title, :length => 60) %>

Posted by <%= pos

元記事を表示

【rails】each文で@postsの要素を配列として並べる書き方

どうも、岩城です。

みなさん、each文は好きですか?好きですよね?違いますか?

さて、そんな私が絶賛片思い中のeach文ですが、railsの中ではどのように使われるのでしょうか。見ていきましょう。

###まずはこちらを見てみましょう
“`

<%= truncate(post.title, :length => 60) %>

Posted by <%= post.user.name %>

<%= post.title %>

<%= post.content %>

<%= link_to "I'm inter

元記事を表示

【Ruby】大量のURLのHTTPステータスコードを取得してCSVで出力する

# はじめに
大量のページのHTTPステータスコードを確認しなければいけないコトがありまして、
スプレッドシートやら、無料のWebサービスを利用したんですがイマイチちゃんとできなかったです。
スプレッドシートのスクリプト実装がよくわからなかった。
無料のサービスだと100件までしか確認できない、多すぎて途中でコケてしまうなどありました。

そのためRubyで実装したという経緯があります。

また自分が使用するかもしれないのでメモがてら記事書きます。

HTTPステータスがヨグワガンニャイ人は下記の記事を見てみてください。
[httpステータスコード一覧 – 各コードの意味・影響・対処法を解説します](https://www.gc-seo.jp/journal/other/status-code/)

# 完成したソースコード

“`ruby
require ‘csv’
require “net/http”

urls = []
CSV.foreach(“urls.csv”) do |row|
urls << row[0] end puts "#{urls.length}件のUR

元記事を表示

Ruby/GTK3 – ProgressBar

`gem install gtk3`

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/144608/ad4d5fd4-142a-4f85-2b58-6a5b16e457fe.png)

“`ruby
# frozen_string_literal: true

require ‘gtk3’

class ProgressBarWindow < Gtk::Window attr_accessor :progressbar, :activity_mode def initialize super self.title = 'ProgressBar Demo' self.border_width = 10 vbox = Gtk::Box.new(:vertical, 6) add vbox @progressbar = Gtk::ProgressBar.new vbox.pack_start progressbar

元記事を表示

読書ログ『メタプログラミング Ruby 第2版』5章

## 5章: 木曜日: クラス定義

はじめに

– Rubyのclassキーワードは、オブジェクトの動作規定だけでなく、実際に**コードを実行**している
– この章では、クラスマクロ(クラスを修正する方法) / アラウンドエイリアス(メソッドをコードでラップする方法) / 特異クラス(シングルトンクラス) を説明する

## クラス定義とは

– クラス定義にはあらゆるコードを置くことができる
– メソッドを定義するだけの場所ではない

“`ruby
class MyClass
puts ‘Hello’
end
“`

– メソッドやブロックと同じように、クラス定義も最後の命令文の値を戻す
– クラス(やモジュール)定義の中では、クラスがカレントオブジェクトselfになる
– クラスとモジュールも単なるオブジェクトにすぎない。

“`ruby
result = class Myclass
self
end

result #=> MyClass
“`

## カレントクラス

– Rubyのプログラムは、常にカレントオブジェクトselfと **カレントクラス**

元記事を表示

【完全版】MacでRails環境構築する手順の全て

## この記事は
**初心者でも迷わず環境構築ができるよう、1つ1つの手順を丁寧に解説した記事**です。
なるべく「どうしてこのコマンドを実行するのか」も解説するようにしています。

**「環境構築が苦手、よくわからない」**という方は、ぜひ参考にしていただければと思います。
また「railsのバージョン指定がうまくいかない…」と悩んでいる方にも参考になると思います。

※もしこれを読んでもうまくいかなければ、ぜひ積極的にコメントいただけますと幸いです!

## マシンスペック
参考までに、私のマシンスペックは以下の通りです。

– macOS Catalina 10.15.3
– MacBook Air (Retina, 13-inch, 2018)
– Intel Core i5
– メモリ 8GB

## Ruby, Railsのバージョン
それぞれ下記バージョンで構築することを目指します。

– Ruby 2.5.7
– Rails 5.2.3

## 全体の流れ
この順番でインストールしていきます。

1. rbenv(Rubyのバージョン管理ツール)
2. Ruby
3

元記事を表示

PythonとRubyのインスタントメソッド文法(勉強中)

今回はPythonとRubyの勉強として、
インスタンスメソッドの文法を比較してみたいと思います。
インスタンスメソッドはオブジェクト指向の基本的な内容で、
様々な言語で比較してみたいと考えております。

今回の用いるPythonとRubyは下記バージョンで実施しております。
Python: 3.7.4
Ruby: 2.6.3
## Pythonでの例

“`python:test.py

class Test:
def __init__(self):
print(‘勉強中’)
“`

## Rubyでの例
“`ruby:test.rb
class Test
def initialize
puts(‘勉強中’)
end
end
“`

比較のすると「:」や「end」の有無などが違うかなという印象です。

随時更新させていただきます。

元記事を表示

Ruby 2.7.0 で速度が重要なときは double splat 引数に double splat 演算子をつけてハッシュを渡すより単にハッシュをハッシュとして渡すほうが良い

Ruby 2.7.0 にして、キーワード引数関連の大量の警告を出ないように変更していったところ、指定の時間内で処理が終わるというテストが失敗するようになったため、もしかして警告に合わせて変更した部分が影響しているのではないかと考え、速度を調べてみました。

“`ruby
RUBY_VERSION # => “2.7.0”

h = { a: 1, b: 2, c: 3 }

def f1(o = {})
end

def f2(**o)
end

require “active_support/core_ext/benchmark”
def _; “%7.2f ms” % Benchmark.ms { 1000_0000.times { yield } } end
_ { f1(h) } # => ” 857.01 ms”
_ { f2(h) } # => “1955.95 ms”
_ { f2(**h) } # => “3679.11 ms”
“`

これでわかったこと

1. ハッシュをハッシュとして渡すのはかなり速い
2. `

元記事を表示

【Rails】Rakeタスクに:environmentがないとNameErrorが出る

## エラー

Rakeタスクを実行したときに、`NameError: uninitialized constant ClassName`が出る。

“`rb:send_summary_mail.rake
namespace :send_summary_mail do
desc ‘管理者に記事数一覧をメール送信する’
task :send_mail do
SummaryMailer.daily.deliver_now
puts ‘メールを送信しました’
end
end
“`

“`terminal
$ rake send_summary_mail:send_mail
rake aborted!
NameError: uninitialized constant SummaryMailer
/Users/k_end/workspace/application/lib/tasks/send_mail_summary.rake:4:in `block (2 levels) in
Tasks: TOP => send_su

元記事を表示

OTHERカテゴリの最新記事