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

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

Python,Ruby,PHP,Java,JavaScript,Perlの文字列処理の比較

Python,Ruby,PHP,Java,JavaScript,Perlの文字列処理の比較

# Python

https://qiita.com/tomotaka_ito/items/594ee1396cf982ba9887

# Ruby

https://qiita.com/kyohei-horikawa/items/b3308601931c20074c31

# PHP

https://qiita.com/chimayu/items/9b9cb14548aa7dd8da1b

# Java

https://qiita.com/suema0331/items/a3c947076ee1a0c6037a

# JavaScript

https://qiita.com/saka212/items/11ce1f1d6316c1fbf15b

# Perl

https://perlzemi.com/blog/20161003147558.html

元記事を表示

Webpacker動かない

rails sしてプレビューすると
~~~ruby
Webpacker::Manifest::MissingEntryError in Homes#top
Showing /home/ec2-user/environment/Rails6_ojt_test/app/views/layouts/application.html.erb where line #9 raised:

Webpacker can’t find application.js in /home/ec2-user/environment/Rails6_ojt_test/public/packs/manifest.json. Possible causes:
1. You want to set webpacker.yml value of compile to true for your environment
unless you are using the `webpack -w` or the webpack-dev-server.
2. webpack has not yet re-run to re

元記事を表示

resources :~, only: %i[index] の”%i”は何者なのか

はじめに

ポートフォリオ作成で参考にしたコードで、ルーティングの設定を記述する際に”%i”という文字列が出てきて、どんな意味が分からなかったので調べたものを備忘録として残そうと思います。

%iとは何者なのか

どうやら、”%i”は「%記法」(パーセント記法)という形式の記法の中の一つのようです。

%iを使用することによって、シンボルの配列を作成してくれます。

https://railsdoc.com/page/symbol_info

例を見た方がイメージが湧くかもしれません。

~~~
例:
%i[red blue yellow white black]
# 下記の配列が作成される
[:red :blue :yellow :white :black]
~~~

%iを使用することにより、”:”を記述せずに配列を作り使用することができるということでした。

なので、今回の最初に疑問を持った式を使用すると、下記のようになります。
“:”を書く手間を省いたと言うことですね。
~~~
resources :~, only: %i[index]
#下記を書いていることと同義

元記事を表示

エラーメッセージの日本語化についての実装

①まず初めに、日本語の言語設定を行う

# 日本語の言語設定
config.i18n.default_locale = :ja

# config/application.rb
# 日本語の言語設定
module Pictweet
class Application < Rails::Application # Initialize configuration defaults for originally generated Rails version. config.load_defaults 6.0 config.i18n.default_locale = :ja # 省略 end end ②日本語に対応する"rails-i18n"というGemを導入します。 # Gemfile  gem 'rails-i18n' # ターミナル  bundle install ⚠️この段階では、まだ完全に日本語化しきれていません。 ③c

元記事を表示

【jQuery】ドロップダウンの開閉(クラスの変化)をトリガーにCSSの変更を動的に実装

# はじめに
ドロップダウンを開いた時に、cssを変更する操作を動的に行いたい。
railsのアプリ環境で行う。

# 環境
| No | 項目 | 内容 |
|—:|————-|————|
| 1 | OS | Mac |
| 2 | Ruby | 2.6.3 |
| 3 | rails | 6.0.4 |
4|jquery-rails|4.5.0
# 実装
[こちら](https://ayaka-weblog.com/programming/html-css-programming/wai-area-accordion/)の記事を参考にjsファイルを書いた。

# jsファイル読み込み設定
全ページにjsファイルを読み込むように設定する。
“`app/javascript/packs/application.js
// app/javascript を起点に記載
require (‘user/dropdown’)
“`

元記事を表示

なぜcreateメソッドのparamsのみparams.requireメソッドが代入されるのか。

理解が曖昧だったため、整理のために記事を投稿。

それは**createメソッド**とそれ以外において、役割が異なるためである。
また、ここでは、newとindexメソッドは省く。

**createメソッド**の役割は、newのviewにおいて記載され、**ストロングパラメーター**となった(許可された)情報を取得し、保存することにある。
そのため、データベースのテーブルから、レコードを一つ取り出すメソッドであるfind(params[:id])は使えない。
そのため、**createメソッドに対し、params.requireの中身を代入すること**になる。

“`ruby:task.controller.rb

def create
@task=Task.new(task_params)
if @task.save
redirect_to tasks_path, notice: “作成しました”
else
render ‘new’
end
end

private

元記事を表示

JSONを受け渡しするRails APIのrequest specの書き方

# はじめに
一部React化で久しぶりにAPIを作成しました
JSONを受け渡しするRails APIのrequest specの書き方まとめです :sparkles:

## headersにContent-Typeを追加する
headersに`’Content-Type’ => ‘application/json’`を追加する
これでJSONのparamsを渡すことができるようになります

追加しないとデフォルトでは
`”CONTENT_TYPE”=>”multipart/form-data”`となり
数値やbooleanが文字列に変換されてしまいます
“`rb
describe ‘PATCH #update’ do
subject { patch xxx_path(article), headers: { “Content-Type” => “application/json” } }

end
“`

## JSONのparamsを用意する
“`rb
let!(:params) { { name: ‘タイトル’, body: ‘本文’ }

元記事を表示

【Ruby】1次元配列を2次元配列に変換する実装方法

## はじめに
多次元配列を1次元配列に変換するには`flatten`メソッドを使用すればよいですが、その逆の1次元配列を多次元配列にするメソッドはないなと思い、実装してみました。
多次元配列と言いながら、今回は2次元配列に変換する方法になります。
## 実装
“`ruby:.rb
puts “カンマ区切りで複数の数値を入力してください”
input_array = gets.chomp.split(“,”)

puts “2次元配列の行と列のどちらを固定しますか?(’行’or’列’を入力してください)”
select = gets.chomp

# 列が選択されたときの行と列の数を算出
if select == “列”
puts “列数を入力してください”
new_column = gets.chomp.to_i # 2次元配列の列数
new_line = ((input_array.count)/new_column.to_f).ceil # 2次元配列の行数
end

# 行が選択されたときの行と列の数を算出
if select == “行”
puts “行数を

元記事を表示

RubyInstaller 3.1.2-1はまずgem install bundlerしましょう

言いたいことはタイトルで完了したので以下発生した問題と原因・解決方法です。

# 問題:rails newが通らない

ちょいと検証したいことがあって`rails new`しようと思い、devkitなしのバージョン入れてたことに気づいて(ネイティブライブラリビルドするgemがインストールエラーになって)、ついでなのでRubyInstallerでRuby 3.1.2を入れました。

で、`rails new`したところ、`bundle install`は通ったもののその後の処理でエラーが出てしまいました。

“`
rails importmap:install
rails aborted!
TZInfo::DataSourceNotFound: tzinfo-data is not present. Please add gem ‘tzinfo-data’ to your Gemfile and run bundle install
C:/TEMP/sample_app/config/environment.rb:5:in `

Caused by:
TZ

元記事を表示

【Rails】ヘッダーのドロップダウンをレスポンシブ対応

# はじめに
[こちら](https://qiita.com/vaza__ta/items/921b748df585bbbb4300)の記事で、ヘッダーをレスポンシブ対応するため、overflow-x: autoを実装した。
それにより表示領域から溢れた時はスクロールバーが表示されるようになった。

しかし、それによってドロップダウンの表示もスクロールバーが表示されるようになってしまった。
![scroll1.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2684787/c1bfb901-6074-ca79-6b91-1229582efdc9.gif)

そこで、スクロールバーに対応するoverflow-xの適応を、ウィンドウサイズの横幅が750px以下の時にのみにすることにした。理由としては下記となる。
・約770px以下からbootstrapによってヘッダーの表示フォーマットが変わる
・それ以下の750px以下であれば、overflowを設定してもドロップダウンがスクロールバー表示にならない
![s

元記事を表示

【Rails】gemのkaminariと配列を併用する場合について

## はじめに
ページネーションを実装する時にkaminariを使用することが多いと思います。
しかし、その前に取得したレコードを操作して配列になっていたりすると、そのまま`.page(params[:page])`を適用させることはできません。
このようなケースが個人開発であったのですが、応用的な使い方を知らず少々つまずいたので、今回記事に残しておくことにしました。

## やりたいこと
– Itemモデル全体をシャッフルして表示する
– 表示は、ページネーション対応で1ページに5個までにする
– kaminariのインストールは[こちら](https://qiita.com/you8/items/df68aaee3010e282d1ae)が参考になります

## 開発環境
Ruby 3.1.2
Rails 6.1.6

## 実装
そもそもページネーションを適用しないのであれば、shuffleメソッドを使用するだけで完了します。
“`ruby:items_controller.rb

def index
@items = Item.all.shuffle
end

.

元記事を表示

【Ruby】Faebook広告のデータをAPIで取得する

# 環境

Ruby 2.6.6
Rails 6.0.4.7
Gem facebookbusiness(Metaが出している公式のSDK)
(※ ググるとgem ‘facebook_ads’などが出てくるが、そちらではないことに注意)
API version v14.0(2022年8月最新)

# やりたいこと
1. Meta for DeveloperのAppにアクセス許可を渡しているすべての広告アカウントを取得する
2. それぞれの広告アカウントの、昨日のパフォーマンス(インプレッション、クリック、コストなど)を取得する

# ビジネスのちょっとした背景

ウチの会社はweb広告に力を入れていて、すべての事業のfacebook 広告アカウントを足すと使っていないものも含めて80アカウントくらいある…。(広告代理店かってくらい)

以前は各アカウントの担当者が毎日毎日手作業でgoogle spreadsheetに情報を入力して、ピボットやシートの連携で集計して、目視で確認して…とだいぶ作業が煩雑になっていた。それを、facebookのapiを叩いてspreadsheetの入力まで自動

元記事を表示

Python,Ruby,PHP,Java,JavaScript,Perlの変数の比較

Python,Ruby,PHP,Java,JavaScript,Perlの変数の比較

# Python

https://qiita.com/G-Rape/items/854a51ef188cd5933bcc

# Ruby

https://qiita.com/Hashimoto-Noriaki/items/d705a3fb92db14de4742

# PHP

https://qiita.com/tokutoku393/items/72d2f3f8986c97c36a27

# Java

https://qiita.com/takahirocook/items/52298e13281e26e576ab

# JavaScript

https://qiita.com/andota05/items/238ff472a0e711b65275

# Perl

https://perlzemi.com/blog/20161107147852.html

元記事を表示

RDF.rb 3.2における RDF::Graph#insert_statement が遅い問題

[RDF.rb](https://ruby-rdf.github.io/rdf/) は、Rubyで書かれたRDF解析ライブラリで、Ruby界隈でのセマンティックWebやLinked Data処理用途で広く使われている。

RDF.rbの2022年8月時点での最新版は 3.2.9 だが、このバージョンには、昨年2021年時点で使っていた3.1系列に比べて、かなり性能上の劣化があるようなので、念のためメモを残しておく。

例えば、以下のようなコードを実行した場合、数万トリプル規模のファイルの場合には数秒で終わるのが、数十万トリプルを超えた場合に、急速に遅くなる現象が発生する。

“`ruby
require “rdf/n3”
graph = RDF::Graph.new
RDF::N3::Reader.open(“test.n3”) do |reader|
count = 0
reader.each_statement do |statement|
graph.insert << statement count += 1 end end ``` 上記のコード

元記事を表示

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

## 今日は配列の変数を使った一覧ページの表示をやってみた!
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2632394/506e5ce2-15e6-d404-2662-50a4cfff8f6b.png)

## 今日の学び

### viewファイル内で変数を定義して表示する
* erbファイルでは`<% %>`で囲むことでHTMLファイル内にRubyのコードを記述できる
* erbは「Embedded Ruby(埋め込みRuby)」の略
* 埋め込んだRuby Codeをブラウザに表示したい場合は`<%=変数%>`を用いる

### <%%>と<%=%>
* `<%%>`の場合は何も表示されないので変数の定義などに用いる
* `<%=%>`はRubyコードの中身が表示されるので変数の値などを表示したい場合に用いる

### 投稿データを入れる配列
* コンマで要素を区切ることで複数の要素を配列に代入できる
* 例:変数postsに複数のデータを入れる

元記事を表示

coc.nvim + efm-langserver でerbファイルの文法チェックをおこなう

# Vimで.erbファイルを書きたい

Rails7のHotwireを試したくて、(nvimで)何年かぶりにeRubyを書いてみてるのだけど、eRuby向けのLanguage Serverが見当たらなくて泣きそうになった。
せめて文法エラーのチェックくらいはできたら・・・[^1]
[^1]: Ruby自体のLanguage Serverは[solargraph](https://solargraph.org/)というのがあり、だましだましだが[Railsもサポートされている](https://solargraph.org/guides/rails)

そこで、どんなコマンドでもLanguage Serverにしてしまえる `efm-langserver` を使ってみることにした。

https://github.com/mattn/efm-langserver

efm-langserverのREADMEには、

“`yaml
lint-command: ‘erb -x -T – | ruby -c’
“`

と[書いてある](https://github.com/mattn/e

元記事を表示

Fakerが理解不足でエラーが出たので調べてみた

はじめに

タイトルの通り、RspecでダミーデータをFakerを用いて作成しようとしたところ、単純な理解不足でエラーが起きて一瞬詰まったので備忘録として残します。
同じようなミスをしている人がもしかしたらいるかもしれないので!!

行いたかったこと

user_name(ユーザー名)のダミーデータを作成がしたくて、下記のように記述したのですが、”国際化エラー:翻訳に失敗しました”というようなエラーが返ってきてしまいました。

~~~
FactoryBot.define do
factory :user do
user_name { Faker::Name.user_name }
#user_nameのダミーデータを作成したかったがエラーが発生
~省略~
end
end
~~~

~~~
#返ってきたエラー
I18n::MissingTranslationData:
translation missing: en.faker.name.user_name
~~~

ネットでエラーについて調べたところ、翻訳ミスなのでconfig/

元記事を表示

Rails7 x Mysql8 Dockerで環境構築をする

## はじめに
Docker環境構築に1日使ってしまい苦労したのでまとめてみる。
環境構築時の知識は`Dockerfile`や`docker-compose.yml`を読めば何をしているのか理解できる。
基本的なコマンドは知っている
`PHP x Mysql`のDocker環境を過去に作ったことがある。

## 環境と前提
Mac M1
Rial7とMysql8で環境を作成する
Vも含めたフルスタック想定で環境を組むが、途中の注釈通り`–api`をつけるだけでapiモードで開発可能

## 環境構築をしていく
適宜コメントで説明を入れていきます。
*必要ファイル*
大体どんな記事でもこの構成だと思う
“`
Dockerfile
docker-compose.yml
Gemfile
Gemfile.lock
entrypoint.sh
“`

*Dockerfile*

“`rb
# Docker-hubのImageをベースとして利用します。
# Docker-hubにログインしていないとダウンロードできないので気をつける
FROM ruby:3.1

# Dockerコンテナ内

元記事を表示

【厳選】エンジニアにおすすめのビジネス寄りTwitterアカウント30選

# はじめに
最近、私が開発した翻訳サービスである[meta翻訳](https://meta-school.web.app)でもサブスクサービスを始めました。
([有料記事](https://meta-school.web.app/articles)を現在月額980円で提供するというものです。)

私自身、日頃のインプットにはTwitterを一番活用しているのですが、フォローしている方はエンジニア系の人が大半で、技術的なインプットが大半となっています。

自分がサブスクを始めたのもあり、世間のニーズを捉える上で、ビジネス系の発信を常日頃から見ておくのは大事なことだとふと思いました。

そこで今回、ビジネスサイドの知見を広める必要を感じ、片っ端から良さそうなアカウントをフォローして情報収集基盤を整理することにしました。

選んだ基準としては以下を意識しました
– エンジニアとの親和性の高さ
– 様々な業界を網羅
– ITサービスを運営してる人

先日、「[【厳選】機械学習の学習におすすめのTwitterアカウント40選](https://qiita.com/goto_yuta

元記事を表示

gem cocoon rails6使い方

## 初めに

今回この記事では、gemのcocoonの簡単なチュートリアルを紹介してきます。
この記事ではあくまで簡単なチュートリアルを動かすことを目的として作成しています。
公式のgithubのreadmeではhtmlファイルがhamlで作成されているのでhamlを学習しておらず詰まってしまっている方に向けて作成しています。

github Readme↓
https://github.com/nathanvda/cocoon

上記のreadmeを日本語訳してくれている記事↓
https://note.com/emetselch1984/n/neb1396b86126

## 実装環境
ruby 3.1.2
rails 6.1.6.1

## 完成図
![Screen_Recording_0004-08-17_at_16_48_12_AdobeExpress.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1717562/77687a3c-d545-ad09-6a4d-ee8d0b721a8c.gi

元記事を表示

OTHERカテゴリの最新記事