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

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

Google recruit problem, exp and prime

# Google Recruit

{e(自然対数の底)の値で連続する10桁の数のうち,最初の素数}

をrubyで求めよ.ただし,e(自然対数の底)は200桁までで

“`
2.71828182845904523536028747135266249775
7247093699959574966967627724076630353547
5945713821785251664274274663919320030599
2181741359662904357290033429526059563073
81323286279434907632338298807531952510190
“`

である.これをテキストにコピーして読みこませよ.

## 解説

グーグル、謎の人材募集広告–シリコンバレーのビルボードに 

Stefanie Olsen (CNET News.com) 2004/07/12 08:40

> 先週、シリコンバレーの中心を走るハイウェー101沿いのビルボードに、複雑な数学の問題を載せた広告が現れた。
>
> (中略)この広告には、「

元記事を表示

新規投稿機能を作成した際にNoMethodError【Ruby on Rails】

Railsで一般的な新規投稿機能を作成した際にNoMethodErrorが発生した。
#原因

一口にノーメソッドエラーと言っても原因は色々考えられる。

私の場合は、UserモデルとPostモデルの間で1対多の関連付けをしていたのだが、app/model/User.rbに

has many :posts

を記述していない事が原因だった。

#教訓

判明してみると、なんでこんなミスをしたのだろうと思ってしまうような凡ミスではあるが、

ノーメソッドエラー
→メソッドが定義されていない
→メソッドを一生懸命確認する

という安易な発想で、原因にたどり着くまでに30分くらい費やしてしまった。

エラー画面の情報はあてにならない(この言い方は大いに語弊があるかもしれないが)場合が多々あるため、周辺情報も含めて行うべき設定は正しく行っているか確認するように心がけたい。

元記事を表示

rails db:migrateでalready existsというエラーの対処方法

rails g modelでモデルを作った後、rails db:migrateしたらエラーが出たのでその時の対処法をメモしておきます。
#エラー内容
“`
————————————————————————–
rails aborted!
StandardError: An error has occurred, all later migrations canceled:

Mysql2::Error: Table ‘notifications’ already exists: CREATE TABLE `notifications` (`id` bigint NOT NULL AUTO_INCREMENT PRIMARY KEY, `visiter_id` int NOT NULL, `visited_id` int NOT NULL, `post_id` int, `comment_id` int, `action` varchar(255) DEF

元記事を表示

ターミナルの出力結果をテキストに出力する

###0.背景
ターミナルで出力した結果をテキストに出力できたら便利だと思い、まとめました。

###1.使用環境
`mac.os バージョン10.15.6`
`Ruby2.6.6`

###2.実際やってみる
Rubyのバージョンを追加する際にインストール可能なバージョンを確認したいと思い、
`rbenv install –list-all`を実行したところ、見切れてしまいました。
ターミナル.png
新たにインストールを行う、2.5.1のバージョンを探していますが見当たりません。
※rbenvとは、`Rubyのバージョンを簡単に切り替えてくれるツール`のことです。
参考リンク:[rbenvの使い方と仕組みについて](https://qiita.com/Kodak_tmo/items/73147ed4f0eec

元記事を表示

Rails RSpec による画像添付結合テスト

#はじめに
RSpecによるオリジナルアプリの結合テストを行っています。画像投稿機能において、「テスト用の画像を添付する」、「添付したテスト用の画像が画面上にあるか」の2つを忘れていたので、備忘録として書き記します。

#目次
1.テスト用の画像を添付する
2.添付したテスト用の画像が画面上にあるかテストする

#1.テスト用の画像を添付する
ここではimage_pathという変数にテスト用画像(test_image.jpg)を添付する。この時相対パスで指定する。
attach_fileメソッドはアップロードのinput要素にテスト用画像を添付することができる。第一引数にアップロードするinput要素のname属性の値、第二引数にアップロードする画像のパス、第三引数にオプション(ここではmake_visible: trueで一時的に表示)を設定する。

“`ruby:spec/system/◯◯_spec.rb
# 添付する画像を定義する
image_path = Rails.root.join(‘public/images/test_image.jpg’)

# 画像

元記事を表示

【Rails】Ajaxでいいねの数を表示する方法

## 概要
[前回の続き](https://qiita.com/suzu12/items/7b72b87a34fa7e2d1307)でいいねカウントの実装をしていいねの数を表示していきたいと思います。

## APIの作成
まずJavaScriptからリクエストが来たときに返したいデータを定義していきます。
JavaScriptでリクエストを送ったら現在のいいね数をresponseで返すことができれば、実装できると思いました。

いいねの数を取得するために、`LikesControllerのshowアクション内でlike_countを定義`しました。

“`ruby:app/controllers/likes_controller.rb
def show
like_count = @team.likes.count
render json: { likeCount: like_count }
end
“`

#### ただ、私が実装したいことは

**現在のいいね数を`DOMContentLoaded`イベント時に取得することだけでなく、POSTとDELETEのリクエストの

元記事を表示

Python学習 基礎編 ~数値と計算~

こちらではPython学習の備忘録と、Ruby、JavaScriptとの比較も含め記載していきたいと思います。
プログラミング初心者や他の言語にも興味、関心をお持ちの方の参考になれば幸いです。

###数値とは?
プログラミングでは、数値を扱うこともでき、文字列とは違いクォーテーションで囲む必要がない。
クォーテーションをつけると、文字列と解釈されるため、文字列と数値は明確に違うものであることを意識しよう。

###計算について
数値は、足し算「+」、引き算「-」、掛け算「*」(アスタリスク)、割り算「/」(スラッシュ)、余剰(割り算の余り)「%」の計算が可能です。
また数値や記号はすべて半角で記述する。

※記号の前後の半角スペースはなくても構わないですが、入れた方がコードが見やすいと思います。

以上は、Python、Ruby、JavaScriptで共通となります。
各言語の記述を下記に記載します。

###Python

“`py:script.py
print(3) # 数値のみ
print(3 + 5) # 対し算
print(6 – 5) # 引き算
print(3

元記事を表示

Ruby on Railsでdeviseとscaffoldを組み合わせた際に調べたところをまとめてみた。

はじめに

Ruby on Railsでdeviseとscaffoldを使って簡易アプリを作っているときに分からないコードなど、調べたことを自分用にまとめてみました。

環境

MacOS Catalina version 10.15.7
Rails 6.0.3.4
devise 4.7.3

前提

“`$ rails new アプリ名“`でアプリができている状態

deviseの導入

以下のurlのページを参考にdeviseでログイン機能等を作成する。
“`rails g devise:install“`でファイルの作成を終えた後、下のコードを記述する。

“`ruby:config/environments/development.rb
config.action_mailer.default_url_options = { host: ‘localhost’, port: 3000 }
“`
こちらのページ⇨ https://qiita.com/Orangina1050/items/a16e655519a6

元記事を表示

README.org

\![Mac OS-11.0.1]() \![ruby-2.6.6p146]()

# 第9回 <2020-11-18 水>

assert\_equal

– LINK -> [第9回](https://qiita.com/ryomichi56/items/00d41bbdef2fdbefdf37)

# 第8回 <2020-11-11 水>

条件分岐

– LINK -> [第8回](https://qiita.com/ryomichi56/it

元記事を表示

第8回、Rakeで作業自動化

\![Mac OS-11.0.1]() \![ruby-2.6.6p146]()

# Rake

**本記事は大学院前期過程の講義[マルチスケールシミュレーション特論]に関する記事です**

## 自動化

### rake とは?

make とかのRuby版。Rakefile の記述に沿って、自動で処理を行ってくれる。うん、単純。講義で扱った例を見てみる。

“`ruby
task :default do
system ‘rake -T’
exit
end

desc ‘hello NAME’
task :hello do
name = ARGV[1]
puts “Hello #{name}!”
exit
end
“`

### 意味解説

上記例を読み解いていく。まず、これの実行は

$ rake

すると、このよ

元記事を表示

第7回、Rubyの条件分岐

\![Mac OS-11.0.1]() \![ruby-2.6.6p146]()

# 条件分岐

**本記事は大学院前期過程の講義[マルチスケールシミュレーション特論]に関する記事です**

## if-elsif-else-end

### お題

閏年の判定。テストする年は `2004, 1999, 1900, 2000` この4つで。

### Ruby での条件分岐

Ruby のリファレンシャルマニュアルにはこう書かれている。

“`ruby
if 式 [then]
式 …
[elsif 式 [then]
式 … ]

[else
式 … ]
end
“`

[]は省略可能を意味する。注意すべきは `else if` でなく `elif` でもなく `elsif` であることくらいで、そんなに目新しいことはな

元記事を表示

第6回、Rubyの変数とメソッド

\![Mac OS-11.0.1]() \![ruby-2.6.6p146]()

# 変数とメソッド

**本記事は大学院前期過程の講義[マルチスケールシミュレーション特論]に関する記事です**

## 変数(variable)

### お題

受け取った引数ARGV[0]をnameという変数に代入してそれを出力する

Rudy

### Ruby での変数

ruby には型宣言の必要がなく、いい感じに型を決めてくれる。代入はいつものようにできる。

“`ruby
name = ‘Rudy’
“`

### 類題を解く

– name に代入して Ruby と出力

“`ruby
name = ‘Ruby’

puts “hello #{name}.”
“`

– ARGV

元記事を表示

第5回、Rubyに触れる

\![Mac OS-11.0.1]() \![ruby-2.6.6p146]()

# Ruby で標準出力

**本記事は大学院前期過程の講義[マルチスケールシミュレーション特論]に関する記事です**

## puts hello\_world

### お題

Hello world.

これを出力してみる

### Ruby の文字出力

| method | 使いどき |
|:——-|:——————————————|
| print | 基本はこれ、改行はセルフ |
| puts | まぁ普通に使う、改行は自動 |
| p | これ

元記事を表示

第5回…の前に、CUIと仲良くなりたい

\![Mac OS-11.0.1]() \![ruby-2.6.6p146]()

# Ruby … その前に

**本記事は大学院前期過程の講義[マルチスケールシミュレーション特論]に関する記事です**

## CUI

CUI はとても便利。しかし時には GUI の方が便利な時もある。だから CUI vs GUI ではなく、CUI × GUI で両方のいいところを用いて生産性を爆上げしよう。

ここで、生産性を左右するのはキーバインドが使えるかどうか。GUI でも CUI でも、キーバインドが左右する。

– (ex.) cmd+c, cmd+v, ctrl+a, ctrl+e

## Shell

shell に命令を渡してやりとり。命令はコマンドと呼ばれる。

command は

– `$command [options]

元記事を表示

第9回、Rubyでassert_equal

\![Mac OS-11.0.1]() \![ruby-2.6.6p146]()

# assert\_equal

**本記事は大学院前期過程の講義[マルチスケールシミュレーション特論]に関する記事です**
assert\_equal は、イコール(両者が等しい)かどうかを確かめる関数。これを作っていく。

## とりあえず

思いつく範囲でとりあえず書いてみる。

“`ruby
def assert_equal(expected, result)
return expected == result
end

p assert_equal(1, 1)
“`

これを実行する。

$ ruby assert_equal.rb
true

よし。

## 色、つけてみる?

$ gem install colorize

元記事を表示

Ruby 技術者認定試験 Gold に合格しました

# はじめに
[Ruby技術者認定試験 Silver 合格](https://qiita.com/superrino130/items/0b22c639bacc43ec9282)から半年たちましたが、
2020-11-27 に Ruby技術者認定試験 Gold に合格しました。
![20201127a.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/538241/6ed1d412-56c6-7967-5c8a-ec8254dcf653.png)

この記事が受験を考えている方の参考になれば幸いです。
# 勉強方法
勉強は次の4つを行いました。

+ AtCoder
+ 試験対策本
+ 模擬試験
+ web上の体験談

# AtCoder
AtCoder さんの問題を引き続き解いております。
AtCoderの問題でクラスを使用する機会は少ないのですが、他の競技者のコードを読んだりすることにより、コードの読解力が深まると思います。

使用頻度:中
# 試験対策本
試験対策本はSilverに引き続き次の本を使用

元記事を表示

Rails seedファイルによる初期データの設定

HerokuでRailsアプリをデプロイした際に自身のアプリケーションでは管理権限のあるユーザーしかユーザーを作成出来ない仕様のアプリケーションなのですが、root画面がログイン画面なので操作出来ないと思い色々考えていたらseedファイルという便利なものがあるのを知り導入しました。

##seedファイルとは
初期データを記述できるファイルです。これがある事で上の件であったり、データベースを作り直す度にテストユーザーの作成時間を短縮する事が出来ます。

db/seeds.rbに記述します。

“`ruby
User.create!(
name: ‘テスト’,
email: ‘test@test.com’,
password: ‘xxxxxx’,
admin: true
)

“`

###開発環境に反映する

“`
$rails db:seed
“`
###Heroku: 本番環境に反映する

“`
heroku run rake db:seed
“`
↑がないと本番環境に反映されません。

ちなみになんですが恥ずかしながら、HerokuでもRai

元記事を表示

[Rails]deleteメソッドとdestroyメソッドの違いについて!![初心者]

#はじめに
先日、とあるアプリケーションを作成していて、“deleteメソッド“と“destroyメソッド“のどちらを使うべきか、分からなくなってしまったので、備忘録も兼ねてアウトプットします!!

#deleteメソッドについて
指定した条件のレコードを、SQLを直接実行することで削除します。
ActiveRecordを介さないということなので、モデルを経由しません。
また、モデルで関連付けされているレコードがあったとしても、そちらは削除されません。

““ruby:
User.find(id: 1).delete
““

#destroyメソッドについて
ActiveRecordを介して、指定した条件のレコードを削除するメソッドです。
モデル内で、“dependent: :destory“が設定されていれば、関連付けされているデータも併せて削除されます。
ActiveRecordを介しているので、“callback“メソッドやバリデーションを機能させることもできます。

メソッドの実行時にエラーが発生し、削除ができなかった場合は、“false“を返すだけ

元記事を表示

railsでマイグレーションファイルを編集する際に行う事(rails db:rollback)

#マイグレーションファイルを編集したい

マイグレーションファイルの記述を間違えてしまった、コードを付け加えたいと思った時は、行う手順があります。

#####まずはマイグレーションファイルの状態を確認します。

“`
% rails db:migrate:status

Status Migration ID Migration Name
————————————————–
up 20201119073257 Devise create users
up 20201120031505 Create coordinations
up 20201120032421 Create active storage tablesactive storage
“`

#####今回はusersのマイグレーションファイルを編集を行いますので次のコマンドを実行します。

“`
rails db:rollback
“`
#####再度statusコマンドでマイグレーション

元記事を表示

Cygwin環境のRubyからExcelファイルを読み書きする(rubyXLの環境構築)

# はじめに

RubyからExcelファイルを読み書きするにはrubyXLがよさげです。

https://github.com/weshatheleopard/rubyXL

このgemをインストールするには

“`
gem install rubyXL
“`
でいけると書いてあるが、実際にはrubyXLはnokogiriというgemに依存している。
更にnokogiriはlibxml2等様々なライブラリに依存しており、
インストールするには gcc や make なども必要になりやや複雑です。

今回はCygwin環境で rubyXL をインストールする方法をご紹介いたします。

# Cyginのパッケージを入れる。
setup-x86_64.exeで以下のパッケージを入れておきます。

+ ruby
+ ruby-devel
+ libxml2-devel
+ libiconv-devel
+ libxslt
+ libxslt-devel
+ gcc-core
+ make

# インストール

“`
gem install nokogiri -r — –use-s

元記事を表示

OTHERカテゴリの最新記事