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

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

if,else問題(演算子) police_trouble

# 問題

以下の要件を満たす police_troubleメソッドを実装しましょう。

あなたは警官です。aとb二人の容疑者の取り調べをしています。このとき、次のルールで証言の真偽判定を行います。
※問題文で登場したaとb二人の容疑者は、今回実装するpolice_troubleメソッドの引数として取り扱っていきます。

第一引数aと第二引数bどちらの証言も真(true)であれば、Trueを出力すること
第一引数aと第二引数bどちらの証言も偽(false)であれば、Trueを出力すること
第一引数aと第二引数bで証言の真偽が一致しない場合であれば、Falseを出力すること

# 雛形
“`
def police_trouble(a, b)
# ここに条件式を記述する
end

# 呼び出し例
police_trouble(true, true)
police_trouble(false, false)
police_trouble(true, false)
“`

出力例
police_trouble(true, true) → True
police_trouble(fa

元記事を表示

【Rails】【Ruby】decoratorでHTMLのタグを作る【初心者】

## はじめに
未経験からエンジニアに転職して、4ヶ月ほど経つエンジニアです。
![アイコンバー.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/916052/61a0d3ee-6ff7-f4ca-bb00-622c3c99cfa5.jpeg)

今回は decorator で HTMのタグを作る方法を手短に紹介します。
rails の gem ‘draper’ を使用しています。

~~~ruby
def user_status_tag
h.tag.span class: “[text-weight-bold”] do
# 描画したい文字や変数、メソッドなど
end
end
~~~

↓に使いたいHTMLのタグを続ければOKです。↑ではspanを使っています。
~~~ruby
h.tag.HTMLのタグ名
~~~

↓のようにスタイルを当てることもできます。
~~~ruby
class: “[text-weight-bold”]
~~~

## 最後に
今回は decorator

元記事を表示

HTMLの基礎知識(YoutudeのURL 投稿と反映)

みなさん今日もプログラミングの学習お疲れ様です!!

今回はYoutudeの動画を投稿し、それを詳細ページに反映する機能を実装していきます!!:sunny:

Step1:モデルを作成

“`ruby:ターミナル
rails generate migration AddYoutubeUrlToTweets youtube_url:string
“`

“`ruby:ターミナル
rails db:migrate
“`

Step2:コントローラーの追加

“`ruby:tweets_controller.rb
private
def register_params
params.require(:register).permit(:youtube_url)
end
“`

Step3:newにyoutude_urlのデータを追加

“`ruby:tweets_new/html.erb
<%= @tweet.label :youtube_url %>
<%= @tweet.t

元記事を表示

基本的なRailsの文法

## はじめに

ドットインストールにてRailsを勉強しているのですが、知識を記憶に定着させるため、学んだこと、調べたこと、自分で考えたことなどを書いていきます。
何かご指摘があれば教えていただければ幸いです!

## 環境

Ruby: 2.6.5p114
Rails: 5.1.7
教材内のバージョンに合わせました。

## ログファイルの場所

“`ruby
log/development.log
“`

## モデル作成

“`:zsh
rails g model Post title:string body:text
“`

Modelは個々のデータ構造を定義するので、Postのように単数形になる。

上記を実行した後、いろいろなファイルが作成され、今作ったデータの構造をデータベースに反映させるには、下記を実行する。

“`:zsh
rails db:migrate
“`

## データベースを使う

“`:zsh
rails dbconsole # rails dbと省略できる
.tables # 存在するテーブルを見る
“`

## 初期データの流し込み

元記事を表示

Ruby インスタンスの生成

クラスとインスタンスの問題を解いてみた。基礎の復習も兼ねて今日もアウトプット。

# 問題
クラスFruitを定義して以下のように出力してください。

“`
採れたて新鮮な果実です
リンゴは120円です
オレンジは200円です
イチゴは60円です
“`

雛形
“`
class Fruit
def クラスメソッド
# 正しくメソッドを定義した上で、ここに処理を記入してください
end

def initialize
# ここに処理を記入してください
end

def インスタンスメソッド
# 正しくメソッドを定義した上で、ここに処理を記入してください
end
end

# 3つのインスタンスを生成してください

# クラスメソッドを呼び出し、「採れたて新鮮な果実です」と表示してください
# インスタンス毎にインスタンスメソッドを呼び出し、「【名前】は【価格】円です」と表示してください
“`

# 解答
“`
class Fruit
def self.fresh
puts “採れたて新鮮な果実です”
end

def ini

元記事を表示

splat演算子と [*array] と {**hash}

以下の書き方ってOKだっけ? そして結果は何? と思ったので調査。

“`ruby
array = [1, 2, 3]
hash = { x: 4, y: 5, z: 6 }

p( [ *array ] )
p( [ *hash ] )
p( [ **array ] )
p( [ **hash ] )
p( { *array } )
p( { *hash } )
p( { **array } )
p( { **hash } )
“`

## 前置き:splat演算子
Ruby ではメソッドの仮引数に、可変長引数 `*rest` や、キーワード引数の余り `**kwrest` を指定できる。これらは実引数の値をそれぞれ配列やハッシュの形に固めて受け取る。

> https://docs.ruby-lang.org/ja/3.1/doc/spec=2fdef.html#method
>
> “`ruby
> # すべて持つ(極端な例なのでおすすめしない)
> def f(a, b, c, m = 1, n = 1, *rest, x, y, z, k: 1, **k

元記事を表示

HTMLの基礎知識(星評価の平均)

今日もプログラミングしていますか?:sunny:

今回は星機能の平均の出し方を実装していきたいと思います!!

*注意
ここでは以下の詳細ページの実装が大前提となっております!!!

“https://qiita.com/tomo089/items/246230912c32aa5c7864”

Step1:コントローラーの追加

“`:tweets_controller.rb
def show
@register = Register.find(params[:id])

@reviews = @register.reviews
@review = Review.new
    #変更箇所
@totals=@reviews.average(:eve)
    #ここまで

end
“`

Step2:Viewの追加

“`:tweets_show.html.erb.

平均評価

退屈なことはRubyにやらせよう ~ファイル整理を自動化する~

# やりたいこと

8桁の日付が含まれている大量のファイルを、日付ごとのディレクトリに分類したい。

これを、、、
Screenshot.png

こうしたい。
Screenshot 1.png
Screenshot 2.png【Ruby on Rails】ポケモンゲットだぜ!!

::: note
本投稿はPoke API使ってポケモンを検索し、
それをゲットだぜ!することで、DBに保存する、というアプリを作成していきます。

尚、[Goorm](https://ide.goorm.io/)を使用します。
環境構築の仕方はこちらを参考にしてください。 ↓↓
[Before Rails Tutorial1章 Goormでの環境構築](https://qiita.com/earth660/items/a51874eba618e2aa5ce6)
:::

# PokeAPIについて
[Poke API](https://pokeapi.co/)にはポケモン関連のデータが大量にあります。
トップページでAPIを簡単に試せるようになっているので、ぜひ触ってみてください。
なお、今回作るアプリケーションでは取得できるデータのほんの一部しか使いません。

# 実装の前に
Goormでプロジェクトを構築していると、すでにプロジェクトフォルダが作成されていると思います。
![スクリーンショット 2022-07-22 16.08.29.png](https://qiita-ima

【Ruby on Rails】Slimでコメントアウトする方法

## Slimでコメントアウトする方法
“`
/
.card-body
h5 ゴリラ
“`
このように“/“を記述すると、“/“より下のコードについてはコメントアウトされ、画面で確認をすると非表示となる。

元記事を表示

Ruby on rails メモ①

### はじめに

記事を書くのは今回が初めての投稿です。
私は今エンジニア転職を目指して独学中なのですが、
色々な文献を見ているとアウトプットとしてQiitaなどに投稿すると知識の定着が図れるとのことなので、
早速やってみます笑

### 直面した問題

現時点でprogateとRaisチュートリアルで勉強してきましたがroutesファイルの表記が違うんです!

例えばusersアクションのルーティングの記述について

こちらがRailsチュートリアル↓
“`
Rails.application.routes.draw do

resource :users

end
“`
  
そしてこちらがprogate↓
“`
Rails.application.routes.draw do

post “users/create” => “users#create”
get “signup” => “users#new”

end
“`

えーーー!progateと違うじゃん!!!ってなりました笑
  
というのもRESTfulなUsersリソースを作成するためにresourcesメ

元記事を表示

bundle install 時の idn-ruby エラー

## エラー内容
環境構築時の`bundle install` で `idn-ruby`に関するエラーに遭遇。

“`
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

current directory: /Users/ynamiki/Desktop/sora/vendor/bundle/ruby/2.6.0/gems/idn-ruby-0.1.0/ext
/Users/ynamiki/.rbenv/versions/2.6.6/bin/ruby -I /Users/ynamiki/.rbenv/versions/2.6.6/lib/ruby/site_ruby/2.6.0 -r ./siteconf20220722-10264-bfer1i.rb extconf.rb
checking for -lidn… no
ERROR: could not find idn library!

Please install the GNU IDN library or alternati

元記事を表示

【Active Storage】ストレージ内にzipファイルを生成してDLする機能作成までにやったこと

## このノートの内容
– クラウドストレージ内のファイルをzipにまとめてDLしたかった
– ファイル処理のメソッドの理解が曖昧だったので、基礎から調べながら行った

## 使用Gem

– [rubyzip](https://github.com/rubyzip/rubyzip)

## 調べた内容

### [File.join](https://docs.ruby-lang.org/ja/latest/method/File/s/join.html)
連結したいディレクトリ名やファイル名を文字列(もしくは文字列を要素に持つ配列)で与えます。
“`ruby
File.join(“a”,”b”) # => “a/b”
“`

### [File.open](https://style.potepan.com/articles/27876.html)

Fileクラスから提供されているopenメソッドで、Rubyでファイルを開いたり・作成したりする際に呼び出す処理です。

読み込みや書き込み時にもファイルを開く必要があるため、ファイ

元記事を表示

100日後くらいに個人開発するぞ!day061

## 今日はDateクラスを学んでみた!

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2632394/f4865f3e-8561-bc35-d6b1-0c1ac300ca35.png)

## 今日の学び

### Dateクラスの読み込み
* Dateクラスを用いると日付を扱うことができる
* DateクラスはRubyが用意しているクラスなので`require`で読み込みことができる
* 既に用意されているクラスを読み込む際は`require “クラス名”`
* 注)`require /.クラス名`ではない

### Dateクラスの使い方
* Dateクラスは他のクラスと同様にDate.newとすることでインスタンスを生成できる
* `インスタンス変数 = Date.new(年,月,日)`

### 曜日を判定するDateクラスのインスタンスメソッド
* 「日曜日かどうか」を真偽値で返す例
* `requre “date”`

元記事を表示

【Rails】APIモードかつクロスオリジン間でCookieやSessionを使う方法【SPA】

# 環境
– Ruby 3.1.2
– Rails 6.1.6
– Vite 2.9.9
– Vue 3.2.25
– Docker
– Google Chrome (バージョン:103.0.5060.53)

# 前提
– RailsはAPIモードで使用
– フロントエンドとバックエンド間は異なるオリジンでの通信

# やり方
APIモードで起動したRailsはそのままではCookieを使うことができません。
なので、まずCookieを使うことができるようにします。

“`ruby:app/controllers/application_controller.rb
class ApplicationController < ActionController::API include ActionController::Cookies # 追加 ``` ```ruby:config/application.rb module App class Application < Rails::Application # ... config.middleware.

元記事を表示

webエンジニア界隈で使われる各言語のテンプレートリテラル比較してみた

# はじめに

昨日書いた記事でもしれっと使ってるんですが、固定の文字列+連番みたいなことをやるときに、普通に文字列連結してもいいのですが見づらいし直感的ではないので、テンプレートリテラル(テンプレート構文)というものを使って、文字列に直接変数をぶっこんでしまう、というやり方を日常的にやるんじゃないかと思います。

昨日書いた記事はこちら

https://qiita.com/layzy_glp/items/7f3e43af11858eff622d

というわけで、昨日書いた記事の順番で各言語のテンプレートリテラルを紹介していきたいと思います。

※追記
後から知りましたが、大概の言語で日本語の呼び方はブレるけど英語では `String interpolation` と呼ばれている機能なんだそうですね。

# Ruby

“`ruby:例
v = “hoge”
print “hoge#{v}” # hogehoge
“`

ダブルクォートで囲われている中の `#{v}` のところですね。変数名を `#{変数名}` ってな感じで囲むやり方です。
割と古く(v1系)からのrubyでは当

元記事を表示

class << self の特異クラス形式内の定数にアクセスしたい

“`ruby
class A
class << self B = 'b' end end A.singleton_class::B # => “b”
“`

元記事を表示

基本的なRubyの文法

## はじめに

ドットインストールにてRubyを勉強しているのですが、写経だけだとなかなか頭に入らないので、学んだことや疑問に思って調べたこと、自分で考えたことなどを書いていきたいと思います。
丸写ししない、間違ったことを書かないよう気をつけましたが、何かご指摘があれば教えていただけると幸いです。

## 標準出力

“`ruby
print “hello” # helloと表示される
puts “hello” # hello + 改行
p “hello” # “hello”のように””も表示されオブジェクトの種類が分かりやすいように表示される
“`

putsはput stringの略。pはデバッグによく使われ、以下のような場合に役立つ。

“`ruby
a = [1, 3]
b = [“1”, “3”]

puts a # 1 3
puts b # 1 3

p a # [1, 3]
p b # [“1”, “3”]
“`

## 変数、定数

“`ruby
fruit = “apple” # 変数
PI = 3.141592 # 定数
“`

変数名は英小

元記事を表示

Rails6でrails generate scaffoldすると`Unknown alias: default (Psych::BadAlias)`とエラーが出る

## 結論

Gemfileで`webpacker`のバージョンを `~> 5.0`と指定すればエラーが出なくなる。
なぜかはわからない。

## 詳細
### やりたかったこと
Railsアプリでscaffoldを使ってリソースを作りたかった。

### 環境
– ruby 3.1.2
– rails 6.1.6
– bundle 2.2.17

### やったこと
基本的にRailsチュートリアル第2章に従っています。
1. `rails new toy_app`でアプリを生成、`cd toy_app`で移動
1. Gemfileを下記のように書き換え
1. `bundle config set –local without ‘production’`で設定
1. `bundle install`でgemのインストール
1. `rails webpacker:install`
1. `rails generate scaffold User name:string email:string`でリソースを作ろうとする

“` Gemfile
source ‘https://rub

元記事を表示

orderメソッドについてまとめ

## はじめに
初心者なりにまとめたものになりますので、間違いにお気づきの方は、お手数ですが、コメント頂けると幸いです。

内容は、Orderメソッドのまとめになります。

## 目次
– orderメソッド の雛形
– orderメソッド 並び順のオプション
– orderメソッドとallメソッド

## orderメソッド の雛形
変数 = モデル名.order(“カラム名”)
変数:お好みの変数を定義する
モデル名:並び替えたいテーブルを管理するモデルの名前
カラム名:並び替えさせたいカラムの名前

例.
テーブル名: mail
カラム名:id, title, content, user_id, created_at, update_at
mailテーブルのuser_idで並び替えさせたい場合は、以下となります。

hoge = Mail.order(“user_id”)

## orderメソッド 並び順のオプション
hoge = Mail.order(“user_id ASC”)
hoge = Mail.order(“user_id

元記事を表示

OTHERカテゴリの最新記事